Java知识点及面试题

整数拓展

  • 进制

    1. 二进制0b
    2. 八进制0
    3. 十进制
    4. 十六进制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
}
}

字符拓展

  1. 所有字符的本质还是数字

    • 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...偶数个\不会转义
  2. 常用的转义字符

    \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");
    }
    }

对象 从内存分析

  1. new关键字会在内存申请一块空间,空间中就有地址,new了几次,就有几块空间,就有几个地址
  2. ==:如果比较的对象是引用数据类型,则比较的是地址是否一致,如果比较的对象是基本数据类型,则比较的是值是否一致
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! 代码要精简易读!
}
}

最新文章

  1. JavaScript 中对变量和函数声明的“提前”
  2. 老贼博客php教程从零学习PHP开始写作,顺祝新同事快乐!
  3. WCF初探-22:WCF中使用Message类(上)
  4. Oracle10g新特性——正则表达式 - 转
  5. 服务器 CentOS上yum安装Nginx服务
  6. Servlet学习
  7. 【Lucene4.8教程之三】搜索
  8. [C++]指针浅析
  9. 记使用sed的一次坑
  10. Struts2框架的基本使用(三)
  11. linux下安装ruby版本管理器RVM
  12. flink如何动态支持依赖jar包提交
  13. Android的Activity组件
  14. [luaj]在安卓用使用luaj
  15. 爬虫之scrapy扩展
  16. js获取到的页面中的checkbox选中的项
  17. [转]SASS用法指南
  18. Bash On Windows上安装JDK
  19. mybatis中批量更新的问题
  20. Cglib invoke以及invokeSuper的一点区别

热门文章

  1. 三分钟实战手写Spring Boot Starter
  2. 关于vue项目和内嵌iframe页面之间的通信问题
  3. 把MyBatis当项目一样,讲透源码的技术书籍!
  4. OpenLayers点聚合
  5. Java学习笔记(三)java方法
  6. python中的上下文管理器以及python内建模块contextlib的contextmanager方法
  7. reset slave
  8. 关于java业务限流组件的应用推广
  9. 【SQL Server】中的日期函数和日期数据类型
  10. vxWidgets(二):接口文档