10月12日学习总结
数据类型
Java 是强类型语言对于数据一般都是先定义后使用
-
八大基本数据类型
-
整数型
- byte 1个字节 范围-128~127
- short 2个字节 范围
- int 4个字节
- long 8个字节
-
浮点型
- float 4个字节
- double 8个字节
-
字符型
-
char 2个字节
字符的本质还是数字,可以通过Unicode表对字符进行转换
public static void main(String[] args) { char c = 'a'; System.out.println((int) c); }
-
-
布尔
-
boolearn 1位 1字节=8位
boolearn值只有true和false两种取值
-
-
-
引用数据类型
引用数据类型一般都是对象
-
面试题
-
银行业务中如何表示金钱?
-
首先我们看一下用double进行存储的结果
double d1 = 12345698715854155D; double d2 = d1 +1; System.out.println(d1 ==d2);//true
我们很容易看出来。d1和d2不相等,但是比较的结果是相等的,这很明显是不正确的,因为当数据过大时,浮点数存在舍入误差,数据会进行约等于,我们得到的数据并不是精准的.其他数据类型因为取值范围较小,很容易就会出现溢出的问题.我们应该选择BigDecimal这是java.Math包下面的一个包装类,数据库中我们应该使用decimal.
BigDecimal bd1 = new BigDecimal(123456987158541D); BigDecimal bd2 = new BigDecimal(123456987158541D+1); System.out.println(bd1.equals(bd2));//false
-
变量
变量就是当我们在内存中申请一块地址用来存放数据,给这个地址取一个名字就叫变量.
变量定义格式:
[修饰符] 数据类型 变量名 = 变量值;
在定义是时也可以不赋值
-
类变量
-
类变量又称为静态变量,属于某一个类而不属于某一个具体的对象,随着类的加载而加载,定义方式如下
static int num = 1;
-
-
实例变量
-
实例变量是属于具体对象的需要具体的对象才可以调用,定义在方法或者代码块外,类里面
int num1 = 2; public static void main(String[] args) { System.out.println(new Demo1().num1);//2 }
-
-
局部变量
- 定义在方法或者代码块里,作用范围也只是在方法或者代码块里
运算符
-
算术运算符
- +,-,*,/,% , ++ , –
-
逻辑运算符
-
&& , || , !
-
在逻辑运算符中当第一个条件已经能够决定结果了就不会在进行第二个数据的判断,所以逻辑运算符也叫短路运算符。测试如下:
boolean b1 = false; int a2 = 3; System.out.println(b1 && (a2++ >1));//false System.out.println(a2);//3
-
-
位运算符
- << , >> , & , | ,
-
三元运算符
- (表达式)?表达式1:表达式2
-
扩展赋值运算符
- += , -= , *= , /=
a++和++a的区别
a++相当于a = a+1,如果是b = a++,就相当于b = a;a = a+1;先赋值在运算.
而b = ++a就相当于b = (a=a+1)
基本结构
-
顺序结构
- Java中的代码如果没有特别的指定就会按照从上到下的顺序进行执行
-
选择结构
- if结构
- switch结构
- switch结构支持使用byte , short,int java7开始支持字符串,使用字符串的话还是通过字符串的hashCode进行比较,
- switch 的每个case后,当语句写完后,如果不写break;进行结束的话会造成case穿透,语句会继续往下执行,直到找到下一个break语句,或者switch结束.
-
循环结构
待完善