java基础

关键字:事先定义的,有特别意义的标识符,又叫保留字,对java编译器有特殊的意义,它们用来表示一种数据类型或者程序的结构等,关键字不可以用作变量名、方法名、类名、包名、参数等。
标识符:为了标识程序中类、方法、和变量的元素而命名
标识符使用规则:
1:以数字、字母、下划线和$组成;
2:不能以数字开头;
3:不能为true、false、null
注释
JavaSE-LMLPHP
命名常量:final datatype CONSTANTNAME = value;

final double PI = 3.1415926;//Declare a constant

使用常量的好处:
1:不用重复输入用一个数值
2:修改值时只需要在源代码的一个地方改,不需要通篇改数值
3:给常量赋一个描述性的名字可以提高代码的可读性
命名习惯:
变量和方法:小驼峰–>首单词首字母小写,其他单词首字母大写–>myAge
类名:大驼峰–>每个单词首字母大写–>ArrayDemo
常量:所有字母大写,如果两个单词用_连接–>PI、MAX_SIZE
Scanner:使用Scanner类中的nextDouble()【nextByte()、nextShort()、nextInt()、nextLong()、nextFloat()】方法来从键盘读取一个double【byte、short、int、long、float】数值
数据类型转换
将一个较小范围类型的变量转换为较大范围类型的变量称为扩宽类型
讲一个较大范围类型的变量转换为较小范围类型的变量称为缩窄类型
扩宽类型不需要显示转换,可以自动完成,但是缩窄类型必须进行强制转换,即显示完成
UNIX时间戳
在计算机科学中1970年1月1日凌晨零点称为时间戳。
调用System.currentTimeMillis()返回当前时间–>返回从GTM1970年1月1日00:00:00开始到现在的毫秒数。
算数运算符
i++与++i的区别:

public class PlusPlusDemo {
	public static void main(String[] args) {
		//++ -- 自身+1 自身-1
		//n++ ++n 
		//n++ 先调用后++
		//++n 先++再调用
		int i=3;
		i++;//4
		System.out.println(i);//4
		System.out.println(i++);//4
		//i=5
		int j=i++;//j=5 i=6
		System.out.println(j);//5
		System.out.println(i);//6
		i=i++;//i=6 i=7
		System.out.println(i);//6
		i=i++;
		System.out.println(i);//6
		/*	n++ n--同理
		 * 	1.先开辟临时存储区 将n的值赋值进去
		 *  2.然后n本身的值+1
		 * 	3.最后将临时存储区的值调用出去
		 *
		 * 	++n --n
		 * 	简单粗暴 直接n自身+/-完毕后 再调用
		 * */

	}
}

逻辑运算符
&&和&的区别:

package day04;

public class test {
	public static void main(String[] args) {
		int i=3;
		int j=4;
		if(i++<=3&&j++>=5){
			System.out.println("条件成立则执行此代码块");
		}
		System.out.println(i);//4
		System.out.println(j);//5,j++没有被执行
		System.out.println("*************");

		if(i++<=3&j++>=5){
			System.out.println("条件成立则执行此代码块");
		}
		System.out.println(i);//5
		System.out.println(j);//6,j++被执行
	}
}

位左移<<和位右移>>:
38:
8–>2^3即3<<3(3左移三位)
5
16:
16–>2^4即5<<4(5左移4位)
30/4:
4–>2^2即30>>2(30右移2位)
编程练习题
JavaSE-LMLPHP

import java.util.Scanner;
public class Demo2_1 {//IPO Input process Output
	public static void main(String[] args){
		Scanner input = new Scanner(System.in);
		System.out.print("Enter a degree in Celsius:");
		double Celsius = input.nextDouble();
		double result = (9.0/5)*Celsius+32;
		System.out.println(Celsius+" Celsius is "+result+" Fahrenheit");
	}
}

JavaSE-LMLPHP

import java.util.Scanner;
public class Demo2_2 {
	public static final double PI = 3.1415926;//全局变量 (常量)
	public static void main(String[] args){
		Scanner input = new Scanner(System.in);
		System.out.print("Enter the radius and length of a cylinder:");
		double radius = input.nextDouble();
		double p = input.nextDouble();
		double area = radius*radius*PI;
		double volume = area*p;
		System.out.println("The area is:"+area);
		System.out.println("The volume is:"+volume);
	}
}

2.3
JavaSE-LMLPHP

import java.util.Scanner;
public class Demo2_3 {
	public static void main(String[] args){
		Scanner input = new Scanner(System.in);
		System.out.print("Enter a number between 0 and 1000:");
		int randomdigit = input.nextInt();
		int a = randomdigit%10;
		int b = randomdigit/10%10;
		int c = randomdigit/10/10%10;
		int sum = a+b+c;
		System.out.println("The sum of the digits is:"+sum);
	}
}

JavaSE-LMLPHP

import java.util.Scanner;
public class Demo2_4 {
	public static void main(String[] args){
		Scanner input = new Scanner(System.in);
		System.out.print("Enter the number of minutes:");
		int number = input.nextInt();
		int year = number/60/24/365;
		int day = (number-year*365*24*60)/60/24;
		System.out.println(number+" minutes is approximayely "+year+" and "+day+" days");
	}
}

JavaSE-LMLPHP

import java.util.Scanner;
public class Demo2_5 {
	public static void main(String[] args) {
		//获取从1970 1-1 00:00:00 到至今的毫秒数
		Scanner scanner=new Scanner(System.in);
		//获取偏移量
		System.out.print("Enter the time zone offset to GMT:");
		int offset=scanner.nextInt();
		long millis=System.currentTimeMillis();
		long seconds=millis/1000;
		long minutes=seconds/60;
		long hours=minutes/60;
		//如何从经过的毫秒值里获取当前小时 总小时%24
		System.out.print(hours%24+offset+":");//东八区+8
		//...当前分钟
		System.out.print(minutes%60+":");
		//...当前秒
		System.out.println(seconds%60);
	}
}

JavaSE-LMLPHP

import java.util.Scanner;
public class Demo2_6 {
	public static void main(String[] args) {
		//1.输入水的重量 初始温度 最终温度
		Scanner scanner=new Scanner(System.in);
		System.out.print("Enter the amount of water in kilograms:");
		double weight=scanner.nextDouble();
		System.out.print("Enter the inital temperature:");
		double initalTemp=scanner.nextDouble();
		System.out.print("Enter the final temperature:");
		double finalTemp=scanner.nextDouble();
		//2.根据公式 计算能量
		double energy=weight*(finalTemp-initalTemp)*4184;
		//3.输出能量值
		System.out.println("The energy needed is "+energy);
	}
}

JavaSE-LMLPHP

package day02;
import java.util.Scanner;
public class Demo2_7{

	public static void main(String[] args){
		Scanner scanner = new Scanner(System.in);
		System.out.print("Enter the monthly saving amount:");
		double money = scanner.nextDouble();
//		第一个月的钱数
		money = money*(1+0.00417);
//		第二个月的钱数
		money = (money+100)*(1+0.00417);
//		第三个月的钱数
		money = (money+100)*(1+0.00417);
		money = (money+100)*(1+0.00417);
		money = (money+100)*(1+0.00417);
		money = (money+100)*(1+0.00417);
		System.out.println("六个月之后的钱数为:"+money);
	}
}

2.8
JavaSE-LMLPHP

import java.util.Scanner;
public class Demo2_8 {
	public static void main(String[] args) {
		//1.输入两个坐标
		Scanner scanner=new Scanner(System.in);
		System.out.print("Enter x1 and y1:");
		double x1=scanner.nextDouble();
		double y1=scanner.nextDouble();
		System.out.print("Enter x2 and y2:");
		double x2=scanner.nextDouble();
		double y2=scanner.nextDouble();
		//2.计算两个坐标之间的距离
		double deltX=x2-x1;
		double deltY=y2-y1;
		//Math.pow(2,3) 2^3 
		//Math.pow(4,0.5) Math.sqrt()
		double distance=Math.sqrt(Math.pow(deltX, 2)+Math.pow(deltY, 2));
		//3.输出距离
		System.out.println(distance);
	}
}

JavaSE-LMLPHP

import java.util.Scanner;
public class Demo2_9 {
	public static void main(String[] args) {
		//1.输入边长
		Scanner scanner=new Scanner(System.in);
		System.out.print("Enter the side:");
		double side=scanner.nextDouble();
		//2.计算面积
		double area=3*Math.sqrt(3)/2*Math.pow(side, 2);
		//3.输出面积
		System.out.println(area);
	}
}

JavaSE-LMLPHP

import java.util.Scanner;
public class Demo2_10 {
	public static void main(String[] args) {
		Scanner scanner=new Scanner(System.in);
		//1.输入华氏温度、风速
		System.out.print("Enter the temperature in Fahrenheit between -58°F and 41°F:");
		double fahrenheit=scanner.nextDouble();
		System.out.print("Enter the wind speed(>=2) in miles per hour:");
		double speed=scanner.nextDouble();
		//2.根据公式计算室外风寒温度
		double windChill=35.74+0.6217*fahrenheit-35.75*Math.pow(speed, 0.16)+0.4275*fahrenheit*Math.pow(speed, 0.16);
		System.out.println(windChill);
	}
}

JavaSE-LMLPHP

import java.util.Scanner;
public class Demo2_11 {
	public static void main(String[] args) {
		Scanner scanner=new Scanner(System.in);
		//1.输入三个坐标
		System.out.print("Enter three points for a triangle:");
		double x1=scanner.nextDouble();
		double y1=scanner.nextDouble();
		double x2=scanner.nextDouble();
		double y2=scanner.nextDouble();
		double x3=scanner.nextDouble();
		double y3=scanner.nextDouble();
		//2.根据坐标求三边
		double sideA=Math.sqrt(Math.pow(x1-x2, 2)+Math.pow(y1-y2, 2));
		double sideB=Math.sqrt(Math.pow(x1-x3, 2)+Math.pow(y1-y3, 2));
		double sideC=Math.sqrt(Math.pow(x2-x3, 2)+Math.pow(y2-y3, 2));
		//3.根据三边求面积
		double s=(sideA+sideB+sideC)/2;
		double area=Math.sqrt(s*(s-sideA)*(s-sideB)*(s-sideC));
		System.out.println(area);
	}
}
10-07 17:58