【爆炒洋葱圈】 Java知识点 Java的基本程序设计结构

这几天在为实习作准备,打算系统地重新学一下java基础。这里是我在看《Java核心技术卷I》的时候记下的一些小点,比较杂乱,但是也有一定的参考价值,放在这里给后来者和自己以后参考。
如有纰漏敬请指教!


  • java的“大数值”(big number)是一个Java对象,能够表示任意精度的值
  • 用Double.isNaN()来判断是否为not a number,其他方法类似
  • \n换行 \r回车
  • 声明一个变量之后必须用赋值语句对变量进行显示初始化
  • final常用作指常量(赋值一次后不可变)。习惯上,常量名称为全大写+下划线。例如:MAX_NUM。利用static final可以设置类常量。
  • 标记strictfp将会使用严格的浮点计算,较少见
  • 如果对负数直接使用%,所得结果可能为负数。这不符合最优(“欧几里德”)规则:余数总是≥0。使用floorMod(a, b)可以保证在除数为正的情况下,无论被除数的符号是什么,所得余数都为正数
  • java.lang.Math类中提供了一些常用函数,例如:
    • Math.sin
    • Math.cos
    • Math.tan
    • Math.atan
    • Math.atan2
    • Math.exp //自然对数
    • Math.log
    • Math.log10
    • Math.PI //π的近似常量
    • Math.E //e的近似常量
  • Math类的所有方法使用计算机浮点单元中的例程。如果一个完全可预测的结果比运行速度更重要的话,那么就应该使用由fdlibm(自由发布的Math库)实现的StrictMath类
  • java中强转换采取截断的方法。所以当试图将一个数值进行强转换,这个数值又超过了目标类型的表达范围时,可能会产生不可预料的结果。如(byte)300结果为44
  • 注意:使用+=(其他符号也一样)符号时,如果左右两边的类型不一致,将会被强制转换成左侧变量的类型。如int x = 1; x += 3.5;时,等价于(int)x + 3.5; 而不是采用自动类型转换的顺序
  • &&和||采用“短路”计算方式
  • &和&&在功能上相近,但在计算时不采用“短路”算法。|同
  • String.substring(1, 3)的第二个参数是不想复制的第一个位置。也就是说,最终得到的字符串是原字符串中0-2的字符组成的字符串
  • 字符串不可变。如果需要修改变量的字符串,即使使用=号,java内部也是修改变量引用指向新的字符串
  • 字符串比较内容是否相等用String equals(String)或String equalsIgnoreCase(String)。由于在java字符串作为对象存在,所以如果在此处使用==比较,那么会只会判断这两个字符串在堆中是否放在同一个位置上(对象是否相同)
  • String trim()返回一个删除了首尾空格的字符串
  • StringBuilder的前身是StringBuffer,前者比后者效率更高,但是后者允许采用多线程的方式执行添加或者删除字符的操作。在单线程中,应该优先使用StringBuilder。
  • 用Scanner.next()可以读取一个单词(以空格为分隔符),Scanner.nextLine()则读取下一整行
  • Scanner.nextInt()/Scanner.nextDouble()
  • 可以用System.out.printf()来进行格式化输出,%d十进制整数/%s字符串/%f定点浮点数
  • java中使用相对路径注意:一般是相对于JVM路径或者IDE设置的路径,可以先使用System.getProperty(“user.dir”)来获取相对路径的绝对路径
  • break可以带标签。跳出的标签最好是在希望跳出的循环的前一行,也可以使用代码块进行跳出(不推荐)
  • BigInteger.valueof(long),如果要读取超过long能表达的字符串的数值,要使用new BigInteger(“123”)
  • 数组初始化:数值=0,布尔值=false,对象=null
  • Array.sort(type[] a)用优化的快速排序算法进行排序,Arrays.binarySearch(type[] a, type key)使用二分搜索法查找key。如果成功返回下标,如果不成功返回一个负数r。-r-1就是为保持a有序key应该插入的位置。注意:二分搜索只能针对有序数组。并且,在调用Array.binarySearch时不会自动排序,所以在搜索无序数组时结果很可能是错的
  • Java中的数组是对象。数组保存的仅仅是对象的引用,而不是对象本身。数组对象本身是存在于堆中的。而对于基本类型数组而言,数组元素的值直接存储在对应的数组元素中
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值