Java知识点及面试题
整数拓展
- 进制
- 二进制0b
- 八进制0
- 十进制
- 十六进制0x
public class Demo03 {
public static void main(String[] args) {
int num1 = 0b10;//int在内存里是以二进制存储的
int num2 = 010;
int num3 = 10;//为了方便观看,int输出的时候使用十进制进行输出
int num4 = 0x10;
System.out.println(num1);
System.out.println(num2);
System.out.println(num3);
System.out.println(num4);
}
}
浮点数拓展
public class Demo03 {
public static void main(String[] args){
float num5 = 3.141592f;//float精确到第七位数
double num6 = 3.141592;//double精确到第十六位数
System.out.println(num5);
System.out.println(num6);
System.out.println(num5==num6);//ture
//精度不同,因为31.41592不等于31.41592000000000
float num7 = 3.1415926f;
float num8 = num7 + 0.0000001f;//在float数据类型中,值加整数不用在整数后加F或f,值加浮点数要在浮点数后加F或f
System.out.println(num7);
System.out.println(num8);
System.out.println(num7==num8);//false
}
}
字符拓展
-
所有字符的本质还是数字
-
- Unicode编码表中的每个编码占2个字节,且Unicode的编码可以处理各种语言的文字,不止有25536个字符
- 在Unicode编码表中字符都是用数字表示的,例如:97=a,65=A
- 以前的Excel表格最长只可以表示2的16次方=25536个字符
-
-
/u是转义字符,表示后面跟一个十六进制数,再通过这个十六进制数来指定一个字符
-
/u不能出现在注释中,/u在注释中也会转义,不然运行时会显示非法的 Unicode 转义
-
注意
///u000d System.out.println("Hello World!"); 会输出hello world! /u000d,///u000d, /////u000d...奇数个/都会转义 //u000d, ////u000d...偶数个/不会转义
-
-
常用的转义字符
/n:回车换行符。显示该字符时,光标移到下一行的行首 /r:回车符。显示该字符时,光标移到当前行的行首 /t:水平制表符。显示该字符时,光标向右移动一个制表位 /v:垂直制表符。显示该字符时,光标向下移动到下一行的同一列制表位 /b:退格 /f:换页 /a:鸣铃 //:反斜杠字符 /':单引号符 /":双引号符 /d /dd /ddd:1~3位八进制数所代表的字符,d的值可以是0~7的任何数字 /xh /xhh:1~2位十六进制数所代表的字符,h的值可以是0~f的任何字符
public class Demo03 { public static void main(String[] args) { System.out.println("Hello/nWorld"); } }
对象 从内存分析
- new关键字会在内存申请一块空间,空间中就有地址,new了几次,就有几块空间,就有几个地址
- ==:如果比较的对象是引用数据类型,则比较的是地址是否一致,如果比较的对象是基本数据类型,则比较的是值是否一致
public class Demo03 {
public static void main(String[] args) {
String d1 = new String("Hello,world!");//new关键字会在内存申请一块空间,空间中就有地址
String d2 = new String("Hello,world!");//new了几次,就有几块空间,就有几个地址
System.out.println(d1==d2);//这里比较的是地址是否相等
String d3 = "Hello,world!";
String d4 = "Hello,world!";
System.out.println(d3==d4);//这里比较的是值是否相等,d3和d4都是在字符串常量池取出来的,值以及存储地址都一样
}
}
布尔值拓展
public class Demo03 {
public static void main(String[] args) {
boolean fleg=true;
if (fleg==true){}//新手
if (fleg){}//老手
//Less is More! 代码要精简易读!
}
}
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/282850.html