JAVA语言的一些简单摘要,分为11点
1.简单性2.面相对象3.网络技能(Network-Savvy)4.健壮性5.安全性
6.体系结构中立7.可移植性8.解释型9.高性能10.多线程11.多态性
 
 
关于小数
System.out.println(2.0-1.1)
输出的是0.899999 不是0.9 主要原因是
浮点数值采用二进制表示,而二进制中无法精确的表示1/10,就好比10
进制里面无法精确表示1/3一样,如果需要精确计算的话,则要用到
BigDecimal类
 
关于数字 
用于表示溢出和出错的三个特殊浮点数值
正无穷大 负无穷大 NaN(not a number 不是一个数字)
Double.POSITIVE_INFINITY Double.NEGATIVE_INFINITY 和Double.NaN
实际应用中很少用到,也别要说明的是,不能这样检测一个特定值是否等于Double.NaN
但是可以用Dboule.isNaN方法
 
关于char类型
\u0000到\uffff Unicode编码单位可以表示为16进制数值
包括了特殊转义字符
在java中,char类型用Utf-16编码描述一个代码单元
从JDK5.0开始 代码点是指一个编码表中的某个字符对应的代码数值
第一个级别代码为基本的多语言级别,从U+0000到U+FFFF 包括了经典的
Unicode代码 其余的16个级别代码点分别从U+10000 到U+10FFFF ,包括了一些辅助字符
 
关于变量名
与大多数程序设计语言相比,java中“字母”和"数字"范围要更大,字母
包括了'a'-'z','A'-'Z','_','$'等 ,数字包括了'0'-'9'和在某种语言中代表数字的
任何Unicode字符
可以用character类的is javaIdentifierStart 和isJavaIdentifierPart进行检测
 
关于常量
常量变量用final修饰 普遍使用全部大写 经常定义成static的类常量
 
关于运算符
当参与/运算的两个操作数都是整数时,表示整数,否则表示浮点除法
需要注意的是 整数被0除会产生一个异常,而浮点数被0除会得到无穷大或NaN结果
 
关于++x与x++
一般来说不建议在程序内部使用++x,比较容易让人误解
并且容易产生未知的BUG
 
位运算
>>用符号位填充高位 >>>用0填充高位
没有<<<运算符
其中对于移位运算符的右侧的参数进行模32的运算
(除非左边的操作数是Long类型,在这种情况下要对右侧的
操作数进行模64运算)
ps:模运算就是取余的意思,一般用于计算机语言中
 
关于类型转换
小转大属于合法转换
如图所示,实心箭头表示无损失的转换,虚箭头表示可能会有损失的转换
如int的123456789转换为float型,包含的位数比float类型能表达的位数多,所以转换之后大小是一样的,但是却损失了一定的精度
 
关于强制转换
如果强制转换的数值超过目标类型的表示范围,那么会结果会被
截断成一个完全不同的值
 
关于运算符优先级
 
 
关于字符串
String类中没有提供修改字符串的方法,因此String类被称为不可变字符串,java设计者认为共享带来的效率远高于提取
String类的构建代码
 
String类中使用字符数组保存字符串,如下就是,因为有“final”修饰符,所以可以知道string对象是不可变的。
    private final char value[];
类似于C语言的指针字符,而并非字符数组
 
关于构建字符串
一般不用String类型进行拼接,这样每次构建一个新的字符串,都会产生新的String对象,既浪费时间又耗时,一般使用StringBuilder的append()方法进行拼接,可以用toString()返回String类型
 
StringBuffer允许采用多线程,同时对方法添加了对象锁,因此是线程安全
String本身是final 显然也是安全
StringBuilder则线程不安全

最新文章

  1. SQL-union
  2. Android应用项目中BaseAdapter、SimpleAdapter和ArrayAdapter中的三种适配器
  3. 深入理解openstack网络架构(3)-----路由
  4. 更快的方式实现PHP数组去重
  5. MathType 插入定义的chapter and section break后无法隐藏
  6. c语言知识(1)
  7. QT输入输出(一) 之 QDataStream 测试
  8. VNC Server 配置
  9. Android 屏幕截图
  10. MAC Eclipse 快捷键
  11. 黄聪:Microsoft Enterprise Library 5.0 系列教程(六) Security Application Block
  12. Java文件流应用:复制文件
  13. 一些图像识别初创公司产品及API搜集ing...
  14. Python 为什么要使用描述符?
  15. Fatal error: cannot initialize AIO sub-system
  16. VBA解析Json(转)
  17. HDU5367 思维map // 动态线段树
  18. UIKit-UIBezierPath
  19. e860. 列出组件绑定的键盘键
  20. chm 文件生成器

热门文章

  1. 老李分享:Android性能优化之内存泄漏2
  2. 2.XML高级用法
  3. Oracle的基本学习(三)&mdash;函数
  4. day001-html知识点总结(二)不常见但很重要的元素汇总
  5. iOS开发 - 啰嗦讲解 Runloop
  6. FineUIMvc
  7. CI框架浅析(二)
  8. linux sed命令就是这么简单
  9. AngularJS路由跳转
  10. 3 安装Zookeeper