1.算法:如果要解决问题,所需执行的动作以及这些动作执行的顺序。
算法可以用伪代码或自然语言来描述。例如:交换a和b两个数的值
public static void main(String[] args){
int 暂存变量=a;
a=b;
b=暂存变量;
}
[拓展]可以不使用暂存变量交换两个数的值,且看
public static void main(String[] args){
int a=5;//0101 5的二进制为0101
int b=9;//1001 9的二进制为1001
System.out.println("a:"+a+"\tb:"+b);//a:5 b:9
a=a^b;//1100 进行异或运算,此时a作为钥匙
b=b^a;//0101 钥匙a与原先的b异或运算得到原先的a赋给b
a=a^b;//1001 此时的b与钥匙a异或运算的到原先的b赋给a
System.out.println("a:"+a+"\tb:"+b);//a:9 b:5
}
2.注意
1.Java并不直接支持从控制台输入,通过创建Scanner类的对象,来读取System.in的输入。
而使用Scanner类来创建对象需要导java.util包。
明确导入 | 通配符导入 |
---|---|
import java.util.Scanner | import java.util.* |
两者在性能上没有什么差异。
class Welcome{
public static void main(String[] args){
java.util.Scanner input=new java.util.Scanner(System.in);
int x=input.nextInt();//从键盘读取int类型的数据
double d=input.nextDouble();//从键盘读取double类型的数据
...
}
}
1.标识符:为了标识类、方法和变量的元素而采用的命名。
2.命名规则
1.命名习惯
class Welcome{//单个单词
}
class HelloWorld{//多个单词
}
int sum=0;
int maxValue=0;
printMaxValue()
final double PI=3.14;
final int MAX_VALUE=100;
2.赋值语句和赋值表达式
a++ | ++a |
---|---|
先赋值后运算 | 先运算后赋值 |
int a=5;
int b=a++;
System.out.println("a:"+(a++)+"\tb:"+b);//a:6 b:5
System.out.println("a:"+a);//a:7
int c=3;
int d=++c;
System.out.println("c:"+(++c)+"\td:"+d);//c:5 d:4
System.out.println("c:"+c);//c:5
3.注意
int i=j=k=2;//错误
int i,j,k;
i=j=k=2;//正确
++d;
d++;//赋值表达式可单独作为一条赋值语句
1.Java共分为八大基本类型
其中六大基本数据类型、char型和boolean型。
类型名 | 最小 | 最大 | 存储大小(位) |
---|---|---|---|
byte | -2^7 | 2^7-1 | 8 |
short | -2^15 | 2^15-1 | 16 |
int | -2^31 | 2^31-1 | 32 |
long | -2^63 | 2^63-1 | 64 |
float | -1.4E-45 | 1.4E-45 | 32 |
double | -4.9E-324 | 4.9E-324 | 64 |
2.数值型直接量
java默认整型时的数据类型为int型,所以当表示一个long型的直接量时,需要加l或L。
long l=12434234l;
long h=432432543254L;
而定义浮点型直接量时,java默认为double类型,所以定义float类型时要加f或F。double比float更精确。
float x=3.0f;
double x=1.0/3.0;//0.333……(共十六位)
float y=1.0f/3.0f;//0.33……4(共八位)
java允许使用数字直接量用下划线隔开,但是下划线两端都必须有数字。
long l=32_4_5647l;//正确
long j=_234;//错误
表示进制直接量时
二进制 | 八进制 | 十六进制 |
---|---|---|
0b或0B开头 | 0开头 | 0x或0X开头 |
int b=0b0110;//二进制 6
int c=01010;//八进制 520
int d=0x1010;//十六进制 4112
3.求余或取模操作符
求余时只有左边操作数为负数时,求余的结果才为负数
-10%3;//-1;
10%-3;//1
-10%-3;//-1
4.科学计数法
//1.4324*10^2可以表示为
1.4324E+2或1.4324E2
//1.4324*10^-2
1.4324E-2
5.数值类型转换
高精度转低精度时,会有精度损失
double b=3.4;
int x=(int)b;//3
int a=3;
double x=a/2;
System.out.println(x);//1.0
6.保留n位小数(此例中n为2)
double a=2020.025342;
System.out.println((int)(a*100)/100.0);//2020.02
7.增强赋值操作符
b+=a;//b=b+a
String s="";
s+=123;
注意
在使用对字符串的增强赋值操作时,要注意顺序,否则得出的结果并非是自己想要的。
1.使用System.CurrentTimeMillis()方法返回从1970年1月1日00:00:00到当前时刻的毫秒数。根据此推导之后就可获取到当前时间。
2.1970年1月1日为UNIX系统正式发布的时间,故又称为UNIX时间戳。
通过第二章的学习,我知道了一些基本的规则和命名习惯,了解到了八大基本类型,之后的学习中还会带大家进一步学习。懂得了++a与a++的区别和增强赋值操作符的使用,编写代码时避免出现常见的错误和陷阱。
加油!第三章待更……