美文网首页
Java核心技术 卷I 第10版 笔记

Java核心技术 卷I 第10版 笔记

作者: prcraoyi | 来源:发表于2018-04-19 12:25 被阅读0次

    基于《Java核心技术 卷I 第10版》,边看边写,持续更新


    • Java严格区分大小写
    • 编译时需要提供文件名(如:Welcome.java);运行时只需要提供类名(如:Welcome),不要带扩展名 .java.class
    • 主类名必须与.java文件名一致,并区分大小写
    • 语句以分号(;)结束
    • 强类型语言,必须为每一个变量声明一种类型
    • 整型值和布尔值之间不能相互转换(不可用1和0代替true和false)


    第2章 Java程序设计环境

    1、下载安装JDK(建议装在D盘)

    2、系统变量设置
    右键“我的电脑”→“属性”→“高级系统设置”→“环境变量”,在“系统变量”中:
    <1>新建变量名 JAVA_HOME
    变量值:JDK安装位置(如:E:\Java\JDK
    <2>修改 Path 变量
    新建变量值 %JAVA_HOME%\bin 并且上移到第一个

    3、设置完成后检查:
    cmd窗口执行 java –version 显示版本
    cmd窗口执行 javac –version 显示版本

    4、安装库源文件(非必要)
    src.zip 文件解压到 JDK 目录中的 src 文件夹(新建)中
    (可用winrar直接解压或使用命令 jar –xvf src.zip

    5、安装文档内容(非必要)
    官网下载文档压缩包,将 docs 文件夹解压到 JDK 目录中(与 src 同一目录)

    6、安装《Java核心技术》源代码(非必要)
    horstmann.com/corejava.html 下载源代码并解压到任意位置


    Linux下相关方法:

    1、下载 .tar.gz 包,并解压到 /opt/ 目录,路径如:/opt/jdk-10/bin/

    2、设置路径
    ~/.bashrc(或~/.bash_profile) 文件在最后添加内容:

    export PATH=/opt/jdk-10/bin:$PATH
    

    3、安装库源文件

    cd ~
    mkdir javasrc
    cd javasrc
    jar -xvf jdk/src.zip    //jdk/src.zip指src.zip文件的路径
    

    7、Eclipse相关
    <1>下载Eclipse IDE for Java Developers(zip版)
    <2>汉化:
    从Eclipse Babel Project下载中文版语言包,替换相应文件
    <3>Eclipse导入现有代码文件:
    “File”→“New”→“Java Project”→输入项目名,不勾选“Use default location”→“Browse”到源文件所在目录→“Finish”

    8、命令行HelloWorld
    <1>文本编辑器编写代码,扩展名为.java
    <2>cmd窗口编译java源代码

    javac filename.java
    

    编译完成后生成 filename.class 文件

    ※ .java文件名与类名一致,并且区分大小写

    <3>运行:java filename //不加扩展名


    第3章 Java的基本程序设计结构

    1、类的标准命名规范:类名是以大写字母开头的名词。如果名字由多个单词组成,每个单词的第一个字母都应该大写(骆驼命名法)

    2、源代码文件名称必须与公共类(public class)的名字相同,并用.java作为扩展名,且区分大小写。在类的源文件中必须包含一个main方法,可以在main方法中调用自定义的其它方法

    ※ main方法必须声明为 public,声明main方法的格式如下:

    public class ClassName
    {
        public static void main(String[] args)
        {
            program statements
        }
    }
    

    3、点号(.)用于调用对象的方法,格式如下:

    object.method(parameters)
    

    Java的方法中可以没有参数,也可以有一个或多个参数。即使没有参数也要有括号

    4、Java注释:(三种方法)
    <1>双斜线(//)从//开始到结尾
    <2>用(/)开始,(/)结尾,表示长注释 <不可嵌套>
    <3>以(/*)开始,(/)结尾的注释,可以自动生成文档

    5、数据类型(共8种)
    <1>整型:int(4字节);short(2字节);long(8字节);byte(1字节)
    <2>浮点型:float(4字节);double(8字节)
    <3>字符类型:char
    <4> boolean 类型(整型值和布尔值之间不能相互转换)

    • 浮点型(float)数值以 Ff 作后缀
    • 无后缀的浮点数默认为 double 型(或以 Dd 作后缀)
    • 长整型(long)数值以 L 或l作后缀
    • 十六进制数以 0x0X 作前缀
    • 八进制数以 0 为前缀
    • 二进制数以 0b0B 作前缀
    • 可以为数字字面加下划线,以方便阅读,编译器会自动忽略(1_000_000

    ※ Java没有任何无符号形式的 intlongshortbyte 类型

    6、用于表示溢出和出错情况的三个特殊的浮点数值:
    <1>正无穷大(常量 Double.POSITIVE_INFINITY
    <2>负无穷大(常量 Double.NEGATIVE_INFINITY
    <3> NaN(不是一个数字)(常量 Double.NaN

    示范:

    if(x==Double.NaN)//错误表述,所有“非数值”的值都认为是不相同的
    if(Double.isNaN(x))//正确表述,检查x是否为一个数字
    

    7、Unicode 转义序列会在解析代码之前得到处理

    8、变量声明方法:变量类型+变量名 ,如:

    boolean done;//必须以分号结尾
    int i, j;//同时声明2个int变量,合法,但不提倡
    

    ※ 字符 $ 只用在Java编辑器或者其他工具生成的名字中

    9、变量名规则:一个以字母开头,并由字母或数字构成的序列,(字母包括下划线(_)),区分大小写,长度不限

    ※ 可以用 Character 类的 isJavaIdentifierStartisJavaIdentifierPart 方法来检查哪些 Unicode 字符属于Java中的“字母”

    10、变量初始化:声明变量后,必须用赋值语句对变量进行显式初始化。
    也可以将变量声明和初始化放在同一行,如:int i = 12;
    声明可以放在使用之前的任何地方。

    11、常量定义及赋值:使用关键字 final,常量只能被赋值一次。习惯上,常量名使用全大写,如:

    final double PI = 3.14;
    

    12、类常量:关键字 static final,可在一个类中的多个方法中使用。定义于方法的外部。示例:

    public static final double PI = 3.14;
    

    如果一个常量被声明为 public,那么其他类的方法也可以使用这个常量

    13、整数被0除,将产生一个异常;浮点数被0除,将会得到无穷大或NaN结果。

    注释:strictfp关键字:标记的方法或类必须使用严格的浮点计算来生成可再生的结果,如:

    public static strictfp void main(String[] args)
    

    14、n%2 n对2取模,当n为负数时,表达式的值为-1

    15、Math类的方法:
    <1>三角函数:

    Math.sin    正弦
    Math.cos    余弦
    Math.tan    正切
    Math.asin   反正弦
    Math.acos   反余弦
    Math.atan   反正切
    Math.atan2(y,x) 向量(x,y)与x轴的夹角
    

    <2>指数函数以及它的反函数——自然对数以及以10为底的对数

    Math.exp
    Math.log(a) a的自然对数(底数是e)
    Math.log10(a)   a的底数为10的对数
    Math.log1p(a)   a+1的自然对数
    

    <3>p常量的近似值:Math.PI
    <4>e常量的近似值:Math.E
    <5>绝对值函数:Math.abs
    <6>开根号:

    Math.cbrt(x)    开立方
    Math.sqrt(x)    开平方
    Math.hypot(x,y)
    

    <7>最值:

    Math.max(a,b)   最大值
    Math.min(a,b)   最小值
    

    <8>幂:

    Math.exp(x) e^x的值
    Math.expm1(x)   e^x-1的值
    Math.pow(x,y)   x^y的值
    

    注释:不必在数学方法名和常量名前添加前缀“Math”,只需在源文件顶部添加代码:

    import static java.lang.Math.*; //静态导入,第4章
    System.out.println(“The square root of \u03C0 is ”+sqrt(PI));
    

    <待补充,P40相关>

    16、<数据类型转换>P40

    17、<强制类型转换>P41

    18、二元运算符:(右结合运算符)

    +=,-=,*=,%=    例:x+=4;    //x=x+4;
    

    19、自增自减运算符:

    • 前缀(如:++n):先加1,再取用
    • 后缀(如:n++):先取用,再加1

    20、关系运算符:

    ==(双等,检测相等性);
    !=(检测不相等);
    >;<;>=;<=
    逻辑与(&&);
    逻辑或(||);//&&比||优先级高
    

    21、三元运算符:

    condition ? expression1 : expression2
    

    如果condition的值为true,执行expression1,否则执行expression2,如:

    x<y ? x : y;  //返回x和y中较小的一个
    

    22、位运算符:P43

    &(and);|(or);^(xor);~(not)
    位模式左移或右移(>>或<<)(>>用符号位填充高位)
    >>>运算符用0填充高位,(不存在<<<运算符)
    

    运算符的优先级:


    运算符优先级.png

    23、枚举类型(第5章)

    24、字符串
    没有内置的字符串类型,标准库中提供了一个预定义类,String,例如:

    String greeting = "Hello";
    

    每个用双引号括起来的字符串都是 String 类的一个实例

    <1>子串(substring方法)

    String greeting = "Hello";
    String s = greeting.substring(0,3);    //Hel,不包含3,从0开始计数
    

    <2>拼接(+)

    System.out.println("The answer is"+answer);
    

    使用定界分隔符(join):

    String all = String.join("/","S","M","L","XL");    //"S/M/L/XL"
    

    <3>不可变字符串(例:将Hello改为Help!)

    String greeting = "Hello";
    greeting = greeting.substring(0,3)+"p!";
    
    • 将来自文件或键盘的单个字符或短的字符串汇集成字符串(见3.6.9)

    <4>检测字符串是否相等:(equals 方法)

    s.equals(t)    //比较字符串s和t,返回true或false
    

    检测字符串是否相等,不区分大小写(equalsIgnoreCase 方法)

    "Hello".equals("hello")    //返回false
    "Hello".equalsIgnoreCase("hello")    //返回true
    

    双等号(==)只能确定两个字符串是否放置在同一个位置上

    <5>空串与null串

    检测空串(""):

    if (str.length() == 0)    或    if (str.equals(""))
    

    null表示目前没有任何对象与该变量关联。检测方法:

    if (str == null)
    

    检测一个字符串既不是null,也不为空:

    if (str != null && str.length() != 0)
    
    • 先检测str不为null,如果在一个null值上调用方法,会出现错误

    相关文章

      网友评论

          本文标题:Java核心技术 卷I 第10版 笔记

          本文链接:https://www.haomeiwen.com/subject/rsfwkftx.html