狂神Java基础知识
一,
idea 中注解的快捷键
crtl+/ //注释
Ctrl+shift+/ 单/注释
1.数据类型
数据类型扩展知识
-
面试题 银行业务可以使用float进行比较嘛?
答案:不可以 首先看例子
float f =0.1f; //0.1 double d =1.0/10; //0.1 System.out.println(f==d); //false float d1=2312312312332566436f; float d2=d1+1; System.out.println(d1==d2);//竟然意外的等于true //根据这个案例可以知道float double都是具有一定精度的数据类型 //也就是float和double都是大概范围 而不是准确的 所以不能运用于银行等需要高精度的场景 //未来运用中也尽量不要使用浮点数比较 //那么银行应该运用什么类型的呢? Java中一个类 BigDecimal
字符拓展
String sa =new String("hello world"); String sb =new String("hello world"); System.out.println(sa==sb); //结果是不相等的 String sc="hello world"; String sd="hello world"; System.out.pirntln(sc==sd); //结果是相等的 //对象 从内存分析 后面需要继续学习的内容
布尔值扩展
boolean flag=true; if(flag==true){} if(flag){} //这两种形式的代码是一样的 大部分是使用if(flag)形式的
类型转换
-
强制转换 : (类型)变量名 例:short a= (short)b
-
例子一
public static void main(String[] args){ int a=128; System.out.println((byte)a);//输出值为-128 原因为内存溢出 }
-
例子二
public static void main(String[] args){ int money=10_0000_0000;//方便数0 System.out.println(money);//输出1000000000 System.out.println("===================================="); int a=10_0000_0000,b=20; long c=a*b; System.out.println(c); //数据溢出:-1474836480 //原因:*优先级大于=(赋值),所以先算a*b,输出一个int型的数字,但是由于200_0000_0000超出了int类型的范围,溢出,输出了一个负数,并且直接讲这个负数赋值给了long型的变量c。 //解决:先将某个变量强转,再计算,再赋值 //long c=((long)a)*b }
变量常量
//注:定义System.out.println以及public static void main的快捷方式
-
类变量 从属于类 加上static
-
实例变量 从属于对象 如果没有初始化,会自行赋值0或者null
-
局部变量 局部内才有用 局部外没有用
总结
-
面试题
public static void main(String[] args){ int a=10; int b=20; //字符串连接符 System.out.println(""+a+b); //答案 第一个为string类型 可以进行计算 System.out.println(a+b""+); //答案为30 string放在最后 无法完成类型转换 }