Java学习笔记1----基本语法

一、学习笔记:

  1. Java三大版本

    • JavaSE
    • JavaEE(完全包含JavaSE)
    • JavaME(逐渐消亡)
  2. Java的特性和优势:

    • 跨平台/可移植性
    • 安全性
    • 面向对象
    • 简单性
    • 高性能
    • 分布式
    • 多线程
    • 健壮性
  3. Java的大小写敏感

  4. 一个文件只能有一个公共类,且必须和文件名一致

  5. 缩窄类型必须显式完成

  6. 方法中声明的变量必须在使用前被赋值。

  7. 行尾风格

  8. 源代码中,字符串常量不能跨行

  9. JOptionPane的正确写法
    showInputDialog(x);
    showConfirmDialog(null,x); 返回0,1,2
    showMessageDialog(null,x);

  10. 用关键字final声明定名常量

  11. System.out.println(“1”+ 1 + 1); 输出:111
    System.out.println(’1’+ 1 + 1); 输出:51(字符型char数据与数据型数据之间的转换)
    System.out.println(1 + 1 +“1”); 输出:21

  12. print(空白符),println(回车),printf(格式化输出)

  13. System.currentTimeMillis()返回…的毫秒数

  14. 二元运算符的两边应该各加一个空格(良好的代码风格)

  15. Math.random()返回一个双精度的随机值,范围:0.0 <= d < 1.0

  16. 递进式开发和测试

  17. boolean值不能被转换成其他数据类型,且打印出来就是true和false(以%d形式打印不报错但是打印不出来)

  18. 泽勒一致性判断某天是星期几

  19. 多个数做乘法运算时最好将其中一个变量类型做提升以防发生溢出

  20. 可以在for循环内声明控制变量,但循环外不能引用它(C好像不可以)

  21. 浮点数比较大小

  22. 【编程练习】使用蒙特卡罗模拟来估算PI

  23. Java中的for-each循环(遍历数组元素):

    for(elementType u:arrayRefVar){
    System.out.println(u);
    }

    注意:变量u必须声明为与arrayRefVar中元素相同的数据类型

  24. 数组大小和默认值:
    数据型基本数据类型的默认值是0
    char型的默认值是’/u0000’(Unicode - 16bit)
    boolean型的默认值为false

  25. 驼峰命名法(第一个单词首字母小写,其他单词首字母大写)

  26. 【百度面试题】float f = 3.4 是否正确
    答: 不正确;
    原因:精度不准确,在Java里面,没小数点的默认是int,有小数点的默认是double
    修改:float f = (float)3.4 或者 float f = 3.4f
    补充:编译器可以自动向上转型,如int转成long系统自动转换没问题,因为后者精度更高,但是double转成float就不能自动做了。
    相似:[wrong]short s1 = 1;s1 = s1 + 1; [right]short s1 = 1;s1 += 1;
    key:声明一个类型后,它的类型是不能变的,值可以转化。

  27. 【百度面试题】switch能作用的类型
    除long类型之外,byte、short、char、int或者其对应的封装类,enum、String类型都可以。

  28. 【百度面试题】3 * 0.1 == 0.3 将会返回什么?true还是false?
    答:false
    原因:参考小数在内存中的存储方式

  29. 对于char[]类型的数组,可以使用一条打印语句打印

  30. 【编程练习】随意打乱数组

  31. list1 = list2;该语句并不能将list2引用的数组内容复制给list1,执行该语句后,list1和list2都指向同一个数组,list1原先所引用的数组不能再引用,它就变成了垃圾,会被java虚拟机自动回收
    java中复制数组有3种方法:
    a. 循环 b.使用System类中的静态方法arraycopy c.使用clone方法
    例:System.arraycopy(sourceArray,src_pos,targetArray,tar_pos,length);
    例:int[] list2 = list1.clone();

  32. 带标签的continue 与 break

  33. 方法重载(方法名相同)
    [true] 参数个数不同
    [true] 参数类型不同
    [true] 参数顺序不同
    [false] 只有返回值不同
    [false] 只有参数名称不同
    调用方法时,Java编译器寻找最精确匹配的方法,参数顺序不同可能导致歧义调用。

  34. Math数学类
    1 三角函数方法
    2 指数函数方法
    3 取整方法
    4 min,max和abs方法
    5 random方法

  35. 运算符优先级

  36. 借助System.currentTimeMillis()测试算法的时间复杂度

  37. 对带返回值的方法而言,return语句是必需的

  38. 对于基本数据类型参数,传递的是实参的值。
    对于数组型参数,参数值是数组的引用,给方法传递的是这个引用。

  39. Arrays类:
    java.util.Arrays.sort(数组名); (优化的快速排序算法)
    java.util.Arrays.sort(数组名,起始位置,结束位置 - 1);
    java.util.Arrays.binarySearch(数组名,key(关键字));

  40. 可变长参数列表 (类型名… 参数名)

  41. 【编程练习】日历的打印(自顶向下的设计和自底向上的实现)

二、注释、

[字符串转化为数字] Integer - 整数

[字符串转化为数字] parse - (语法)分析

[输入]Scanner - 扫描仪

三、参考资料

《Java语言程序设计 基础篇》

猜你喜欢

转载自blog.csdn.net/qq_41359212/article/details/80270019