读书笔记

java读书笔记

  1. 在java中,数据类型具有固定的大小,而且各种数据类型的取值范围也是固定的,例如int永远为32位的整数,和c++不同。

  2. java区分大小写,注意是否有拼写错误(如,将main拼写成Main,就无法运行)

  3. java使用的通用语法是:object.method(parameters),比如System.out(对象)调用函数println(可换行),print函数不换行。

  4. 3种注释方法:比c++多的一种是(/** ,*/)

  5. 整型值和布尔值之间不能进行相互转换。x=0不能转换为布尔值false,非0值也不是布尔值true。

  6. 声明一个变量之后,必须用赋值语句对变量进行显示初始化。

  7. 利用关键字final表示常量,表示这个变量只能被赋值一次(一般常量名使用全大写),在 Java 中,经常希望某个常量可以在一个类中的多个方法中使用,通常将这些常量称为类常量,关键字 static fina设置一个类常量定义在main方法的外部。

  8. 当参与 / 运算的两个操作数都是整数时, 表示整数除法;否则, 表示浮点除法。 整数的求余操作(有时称为取模) 用 % 表示。例如,15/2 等于 7, 15%2 等于 1 , 15.0/2 等于 7.5。需要注意,整数被 0 除将会产生一个异常, 而浮点数被 0 除将会得到无穷大或 NaN 结果。

  9. 不必在数学方法名和常量名前添加前缀“ Math”, 只要在源文件的顶部加上下面这行代码就可以引用:
    import static java.1ang.Math.*;

  10. 负数%2=-1

  11. && 和 || 运算符是按照“ 短路” 方式来求值的: 如果第一个操作数已经能够确定表达式的值,第二个操作数就不必计算了。

  12. Java 不使用逗号运算符。

  13. Java 没有内置的字符串类型, 而是在标准 Java 类库中提供了一个预定义类,很自然地叫做 String。每个用双引号括起来的字符串都是 String类的一个实例。
    String 类的 substring 方法可以从一个较大的字符串提取出一个子串

  14. 当将一个字符串与一个非字符串的值进行拼接时,后者被转换成字符串。

  15. (任何一个 Java 对象都可以转换成字符串):
    如果需要把多个字符串放在一起, 用一个定界符分隔,可以使用静态 join 方法:
    String all = String.join(" / ", “S”, “M”, “L”, “XL”);
    all is the string “S / H / L / XL”

  16. 由于不能修改 Java 字符串中的字符, 所以在 Java 文档中将 String 类对象称为不可变字符串,比如字符串“ Hello” 永远包含字符 Hello 的代码单元序列, 而不能修改其中的任何一个字符。(但是如果要修改可以新建一个对象)

  17. 可以使用 equals 方法检测两个字符串是否相等。对于表达式: s.equals(t):如果字符串 s 与字符串 t 相等, 则返回 true ; 否则, 返回 false。要想检测两个字符串是否相等,而不区分大小写, 可以使用 equalsIgnoreCase 方法。
    一定不要使用=运算符检测两个字符串是否相等! 这个运算符只能够确定两个字串
    是否放置在同一个位置上。当然, 如果字符串放置在同一个位置上, 它们必然相等。

  18. 空串是一个 Java 对象, 有自己的串长度( 0 ) 和内容(空)不过, String 变量还可以存放一个特殊的值, 名为 null, 这表示目前没有任何对象与该变量关联。
    首先要检查 str 不为 null, 如果在一个null 值上调用方法, 会出现错误。

  19. 使用StringBuilder类构建字符串,append(添加),toString方法等

  20. 要想通过控制台进行输入,首先需要构造Scanner对象:
    Scanner in =new Scanner(System.in);
    in.nextLine()(以空格作为分隔符读取),in.nextInt(),in.nextDouble()

  21. 要想对文件进行读取,就需要一个用 File 对象构造一个 Scanner 对象,Scanner in = new Scanner(Paths.get(“myflle.txt”), “UTF-8”);
    如果文件名中包含反斜杠符号,就要记住在每个反斜杠之前再加一个额外的反斜杠: “ c:\mydirectory\myfile.txt ” 反而 要想写入文件, 就需要构造一个 PrintWriter 对象。在构造器中,只需要提供文件名:PrintWriter out = new Printlulriter(“myfile.txt”, “UTF-8”);
    要记住一点:如果用一个不存在的文件构造一个 Scanner, 或者用一个不能被创建的文件名构造一个 PrintWriter,那么就会发生异常。Java 编译器认为这些异常比“ 被零除” 异常更严重。

  22. 块({ }),不能再嵌套的两个块中声明同名的变量。

  23. 如果在 for 语句内部定义一个变量, 这个变量就不能在循环体之外使用。 如果希望在 for 循环体之外使用循环计数器的最终值,就要确保这个变量在循环语句的前面且在外部声明!

  24. • static Biglnteger valueOf(1 ong x)
    返回值等于 x 的大整数。
    • static BigDecimal valueOf(1 ong x)
    • static BigDecimal valueOf(1 ong x ,int scale)
    返回值为 X 或 x / 10scale 的一个大实数

  25. 创建一个数字数组时, 所有元素都初始化为 0。boolean 数组的元素会初始化为 false, 对象数组的元素则初始化为一个特殊值 null
    *使用new运算创建数组:int[] a = new int[100];

  26. for each 循环:**
    for (variable : collection) statement**
    for (int element : a)
    System.out.println(element):
    打印数组 a 的每一个元素,一个元素占一行。这个循环应该读作“ 循环 a 中的每一个元素”(for each element in a )
    可以创建一个长度为 0 的数组:new elementType[0]
    注意, 数组长度为 0 与 null 不同

  27. 如果希望将一个数组的所有值拷贝到一个新的数组中去,就要使用 Arrays 类的 copyOf方法:int[] copiedLuckyNumbers = Arrays.copyOf(luckyNumbers , luckyNumbers .length); 第 2 个参数是新数组的长度。这个方法通常用来增加数组的大小:luckyNumbers = Arrays.copyOf(luckyNumbers , 2 * luckyNumbers.length);
    如果数组元素是数值型,那么多余的元素将被赋值为 0 ; 如果数组元素是布尔型,则将赋值为 false。相反,如果长度小于原始数组的长度,则只拷贝最前面的数据元素。
    要想对数值型数组进行排序, 可以使用 Arrays 类中的 sort 方法

  28. Math.rand0m 方法将返回一个 0 到 1 之间(包含 0、不包含 1 ) 的随机浮点数。用n乘以这个浮点数 就可以得到从 0 到 n-l 之间的一个随机数。
    int r = (int) (Math.random() * n);

  29. 要想快速地打印一个二维数组的数据元素列表, 可以调用:
    System.out.println(Arrays.deepToString(a));
    输出格式为: [[16, B, 2, 13], [5, 10, 11, 8], [9, 6, 7, 12], [4, 15, 14, 1]]
    •static String toString(type[]a)
    返回包含 a 中数据元素的字符串, 这些数据元素被放在括号内, 并用逗号分隔。参数: a 类型为 int、long、short、 char、 byte、boolean、float 或 double 的数组。

  30. java中是数组的数组。
    666:由于可以单独地存取数组的某一行, 所以可以让两行交换。
    double [ ] temp = balances[i]:
    balances[i] = balances[i + 1];
    balances[i + 1] = temp;

  31. 要想创建一个不规则的数组, 首先需要分配一个具有所含行数的数组。
    int [][]odds = new int [NMAX + 1] [] ;
    接下来, 分配这些行。
    for (int n = 0; n <= NMAX ; n++)
    odds [n] = new int[n + 1];
    在分配了数组之后 ,没有超出边界就可以采用访问其中的元素了。
    for (int n = 0; n < odds.length; n++)
    for (int k = 0; k < odds [n] .length; k++)
    { // compute lotteryOdds
    odds [n] [k] = lotteryOdds; }

  32. 关于函数3在这里插入图片描述

  33. 关于函数2
    关于函数2

  34. 关于函数1在这里插入图片描述

  35. 关于
    在这里插入图片描述

  36. . 在图 3-1 中有 6 个实心箭头,表示无信息丢失的转换,有 3 个虚箭头,表示可能有精度损失的转换。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值