数据类型扩展以及面试题讲解

整数拓展:进制

  • int i=10;

  • int i2=010; //八进制0

  • int i3=0x10; //十六进制0x 0~9 A~F 16

    相关进制转换自行学习,用的不多

浮点数拓展

银行业务怎么表示? 钱的问题意味着精准不能出错

通常实用BigDecimal来表示,这是一个数学工具类

float与double 有有限,离散,接近但不等于,舍入误差这样的特点

因此最好不要使用浮点数进行比较

        float f=0.1f;//0.1
       double d=1.0/10;//0.1
       System.out.println(f==d);//false

       float d1=22223333333333333f;
       float d2=d1+1;
       System.out.println(d1==d2);//true

字符拓展

所有的字符本质都是数字,强制转换,字符型转整数型时都会被换成数字,这里就涉及到编码

编码Unicode表中97=a,占两个字节,能表示0~65536的数

很多人都以为Excel是无限的,其实不然,最大也时65536(2的16次方)

在Java中也可以用16进制的写法

        char c1='a';
       char c2='中';
       System.out.println(c1);
       System.out.println((int)c1);//强制转换
       System.out.println(c2);
       System.out.println((int)c2);//强制转换
       //所有的字符本质还是数字
       //编码 Unicode表中97=a   2字节 0~65536                 Excel 2的16次方=65536

       //U0000~UFFFF
       char c3='\u0061';//里面的61是16进制
       System.out.println(c3);

转义字符总结

\a 响铃(BEL) 007
\b 退格(BS) ,将当前位置移到前一列 008
\f 换页(FF),将当前位置移到下页开头 012
\n 换行(LF) ,将当前位置移到下一行开头 010
\r 回车(CR) ,将当前位置移到本行开头 013
\t 水平制表(HT) (跳到下一个TAB位置) 009
\v 垂直制表(VT) 011
\ 代表一个反斜线字符''' 092
' 代表一个单引号(撇号)字符 039
" 代表一个双引号字符 034
\? 代表一个问号 063
\0 空字符(NUL) 000
\ddd 1到3位八进制数所代表的任意字符 三位八进制
\xhh 十六进制所代表的任意字符 十六进制

分析一些东西

前面写浮点数时,了解了看上去相等的东西其实是不等的,这里利用对象来展示一下

        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.println(sc==sd);

输出结果

flase
true

为啥呢,这里涉及到java的一些设定上的东西,java有堆和栈的概念

第一个输出结果是因为两次创建对象分了不同的内存,在这个概念

上sa和sb不是一个东西

第二就是简单创建两个变量的结果,调用的是同一个内存下的东西

布尔值拓展

        boolean flag=true;
       if (flag==true){ }//新手
       if (flag){ }//老手
       //Less is More!   代码要精简易读

代码要精简易读

以后等你成为大佬了,就不会再看到新手代码了,但现在,作为一个小白,必须认认真真的写,不能偷懒哦

最新文章

  1. 读书笔记--SQL必知必会14--组合查询
  2. 设计模式03备忘录(java)
  3. Git 修改源地址
  4. MVVM架构~knockoutjs实现简单的购物车
  5. MVC5 条件查询异步刷新
  6. 给Number类型增加加法、减、乘、除函数,解决float相加结果精度错乱的问题
  7. Python中定义字符串
  8. PHP-Java-Bridge使用笔记,2014年9月最新版
  9. Python3批量爬取网页图片
  10. T-SQL利用Row_Number函数实现分页
  11. OC - 6.block与protocol
  12. Poj 1511 Invitation Cards(spfa)
  13. Javascript 取小数点后面N位
  14. jQuery $.ajaxSend()
  15. VB6之Mandelbrot集
  16. [知了堂学习笔记]_JSON数据操作第2讲(JSON的封装与解析)
  17. Java中File的使用
  18. JAVA 类的定义(定义一个类,来模拟“学生”)
  19. GitHub项目功能理解
  20. SQLServer存储过程批量删除

热门文章

  1. Linux 文件查看相关的一些命令
  2. 【MySQL】DDL数据定义语言的基本用法create、drop和alter(增删改)
  3. 2021升级版微服务教程7-OpenFeign实战开发和参数调优
  4. Java反射全解析(使用、原理、问题、在Android中的应用)
  5. PHP反序列化 - Pikachu
  6. Java 迭代器的使用 Iterator
  7. unity3D进阶
  8. jQuery 移入显示div,移出当前div,移入到另一个div还是显示。
  9. Linux系统中的Page cache和Buffer cache
  10. https://twistedmatrix.com/documents/current/core/howto/defer.html