精华内容
下载资源
问答
  • Java 核型技术第十一 卷一和二的随书源代码 Prentice.Hall.Core.Java.Volume.I.Fundamentals.11th.Edition source code Prentice.Hall.Core.Java.Volume.II.Advanced.Features.11th.Edition source code
  • JAVA核心技术第11版卷1,2》 Java核心技术与Thinking in Java(Java编程思想)齐名的 Core Java。2018年9月才出版的英文原版,包括了Java9,Java10,Java11的新特性,中文的翻译版还没有出,估计还要很久,多看看...

    《JAVA核心技术第11版卷1,2》 Java核心技术与Thinking in Java(Java编程思想)齐名的 Core Java。2018年9月才出版的英文原版,包括了Java9,Java10,Java11的新特性,中文的翻译版还没有出,估计还要很久,多看看英文文档对自己也是很有帮助的。书中囊括了Java的全部基础知识,提供了大量完整且具有实际意义的应用示例,详细介绍了Java语言基础、面向对象编程、反射与代理、接口与内部类、事件监听器模型、使用Swing GUI工具进行图形用户界面程序设计、打包应用程序、异常处理、登录与调试、泛型编程、集合框架、多线程、并发等内容。本书赢得了全球程序员的广泛赞誉,即使是最晦涩的概念,在Bruce Eckel的文字亲和力和小而直接的编程示例面前也会化解于无形。从Java的基础语法到最高级特性(深入的面向对象概念、多线程、自动项目构建、单元测试和调试等),本书都能逐步指导你轻松掌握。
    《JAVA编程思想第四版中文版》 从本书获得的各项大奖以及来自世界各地的读者评论中,不难看出这是一本经典之作。本书的作者拥有多年教学经验,对C、C++以及Java语言都有独到、深入的见解,以通俗易懂及小而直接的示例解释了一个个晦涩抽象的概念。本书共22章,包括操作符、控制执行流程、访问权限控制、复用类、多态、接口、通过异常处理错误、字符串、泛型、数组、容器深入研究、Java I/O系统、枚举类型、并发以及图形化用户界面等内容。这些丰富的内容,包含了Java语言基础语法以及高级特性,适合各个层次的Java程序员阅读,同时也是高等院校讲授…
    提取码:rnal

    展开全文
  • Java核心技术 卷1 原书第11版(最新版),卷2目前还没有,后续再更新上传
  • Java核心技术第11版卷1 勘误1

    千次阅读 2019-12-29 11:25:25
    在书的第50页: boolean blank() 应改为 boolean isBlank()

    在书的第50页:

    boolean blank()

    应改为

    boolean isBlank()

     

    展开全文
  • 11th Edition Volume 1 (Java SE 9 - 11) Page 54 Change “Except, of course, when n is negative.” to “Except, of course, when n is odd and negative.” Page 69 Change the method names empty and blank ...

    11th Edition Volume 1 (Java SE 9 - 11)
    Page 54
    Change “Except, of course, when n is negative.” to “Except, of course, when n is odd and negative.”
    Page 69
    Change the method names empty and blank to isEmpty and isBlank.
    Page 69
    In the API note for the startsWith/endsWith methods, change “returns true if the string starts or ends with suffix.” to “returns true if the string starts with prefix or ends with suffix.”
    Page 628 preferences/ImageViewer.java
    Change line 60 from
    node.put("image", image);
    to
    if (image != null) node.put("image", image);

    来源:http://horstmann.com/corejava/bugs.html#CJ11V1

    展开全文
  • 第三章 Java的基本程序设计结构(上)3.1 一个简单的java应用程序3.1.1 注意点3.2 注释3.3 数据类型3.3.1 整型3.3.2 浮点类型3.3.3 char类型3.3.4 Unicode 和 char 类型3.3.5 boolean 类型3.4 变量与常量3.4.1 声明...

    3.1 一个简单的java应用程序

    从一个最简单的Java应用程序开始学习:

    public class FirstSample
    {
    	public static void main(String[] args)
    	{
    		System.out.println("We will not use 'Hello, World!'");
    		}
    	}
    

    3.1.1 注意点

    这个程序虽然很简单,但所有的Java应用程序都具有这种结构,因此我们要注意以下几个:

    1. Java区分大小写 ,如果出现了大小写拼写错误,程序将无法运行;
    2. 关键字poblic称为访问修饰符,这些修饰符用于控制程序的其他部分对这段代码的访问级别;
    3. 关键字class表明Java程序中的全部内容都包含在类中;
    4. 关键字class后面紧跟类名,名字必须以字母开头,后面可以跟字母和数字的任意组合,但是不能使用Java保留字,类名是以大写字母开头的名词;
    5. 源代码的文件名必须与公共类的名字相同,并用**.Java**作为扩展名;
    6. 需要注意源代码中的大括号{}
    7. Java使用的通用语法是object.method(parameters)

    3.2 注释

    与大多数程序设计语言一样,Java中的注释也不会出现在可执行程序中。在Java中,有三种标记注释的方式。最常用的是使用 / /;也可以使用/*和 */注释界定符;也可以以/**开始,以 * / 结束来自动生成文档。

    3.3 数据类型

    Java是一种强类型语言。这就意味着必须为每一个变量声明一种类型。在Java中一共有8种基本类型,其中4种整型、2种浮点类型、1种字符类型char和1种用于表示真值的boolean类型

    3.3.1 整型

    整型用于表示没有小数部分的数值,允许是负数。Java提供了4种整型,具体如下表。
    在这里插入图片描述
    长整型数值有一个后缀 L 或 1 ( 如 4000000000L) 。十六进制数值有一个前缀 0x 或 0X (如0xCAFE)。 八进制有一个前缀 0 , 例如, 010 对应八进制中的 8。很显然, 八进制表示法比较容易混淆, 所以建议最好不要使用八进制常数。

    从 Java 7 开始, 加上前缀 0b 或 0B 就可以写二进制数。例如,0b1001就是 9。另外,同样是从 Java 7 开始,还可以为数字字面量加下划线,如用 1_000_000(或0b1111_0100_0010_0100_0000 )表示100万。这些下划线只是为了让人更易读。Java 编译器会去除这些下划线。

    3.3.2 浮点类型

    浮点类型用于表示有小数部分的数值。在 Java 中有两种浮点类型,具体内容如表 3-2 所示。
    在这里插入图片描述

    3.3.3 char类型

    char 类型的字面量值要用单引号括起来。例如:‘A’是编码值为 65 所对应的字符常量。它与 “A” 不同,“A” 是包含一个字符 A 的字符串, char 类型的值可以表示为十六进制值,其范围从 \u0000 到 \uFFFF。例如:\u2122 表示商标符号 (TM ), \u03C0 表示希腊字母 π。除了转义序列 \u 之外, 还有一些用于表示特殊字符的转义序列, 请参看表 3-3。
    在这里插入图片描述

    3.3.4 Unicode 和 char 类型

    在 Java 中,char 类型描述了 UTF-16 编码中的一个代码单元。
    我们强烈建议不要在程序中使用 char 类型,除非确实需要处理 UTF-16 代码单元。最好将字符串作为抽象数据类型处理(有关这方面的内容将在 3.6 节讨论)。

    3.3.5 boolean 类型

    boolean (布尔)类型有两个值:false 和 true, 用来判定逻辑条件整型值和布尔值之间不能进行相互转换。

    3.4 变量与常量

    3.4.1 声明变量

    在Java中,每个变量都有一个类型(type)。在声明变量时,先指定变量的类型,然后是变量名。

    double salary;
    int vacationDays;
    long earthPopulation;
    boolean done;
    

    3.4.2 变量初始化

    声明一个变量之后,必须用赋值语句对变量进行显式初始化, 千万不要使用未初始化的变量。例如, Java 编译器认为下面的语句序列是错误的:

    int vacationDays;
    System.out.println(vacationDays): // ERROR variable not initialized
    

    要想对一个已经声明过的变量进行赋值, 就需要将变量名放在等号(=) 左侧, 相应取值的 Java 表达式放在等号的右侧。

    int vacationDays;
    vacationDays:12;
    

    也可以将变量的声明和初始化放在同一行中。例如:

    int vacationDays = 12;
    

    最后,在 Java 中可以将声明放在代码中的任何地方。例如,下列代码的书写形式在 Java中是完全合法的:

    double salary = 65000.0;
    System,out.println(salary);
    int vacationDays = 12; // OK to declare a variable here
    

    在 Java 中, 变量的声明尽可能地靠近变量第一次使用的地方, 这是一种良好的程序编写风格。

    注释:从Java10开始,对于局部变量,如果可以从变量的初始值推断出它的类型,就不再需要声明类型。
    只需要使用关键字var而无须指定类型:
    var vacationDays 12; // vacationDays is an int
    var greeting = "Hello"; // greeting is a String
    

    3.4.3 常量

    在 Java 中, 利用关键字 final 指示常量。例如:

    public class Constants
    {
    public static void main(String[] args) {
    final double CM_PER_INCH = 2.54;
    double paperWidth = 8.5;
    double paperHeight = 11;
    System,out.println("Paper size in centimeters: " + paperWidth * CM PER INCH + " by " + paperHeight * CM.PER.INCH); } }
    

    关键字 final 表示这个变量只能被赋值一次。一旦被赋值之后,就不能够再更改了。习惯上,常量名使用全大写

    在 Java 中,经常希望某个常量可以在一个类中的多个方法中使用,通常将这些常量称为类常量。可以使用关键字 static final 设置一个类常量。 下面是使用类常量的示例:

    public cl ass Constants〗 {
    public static final double CM_PER_INCH = 2.54;
    public static void main(Stringn args) {
    double paperWidth = 8.5;
    double paperHeight = 11;
    System.out.println("Paper size in centimeters: " + paperWidth * CMJERJNCH + by " + paperHeight * CM_PER_INCH) ; } }
    

    需要注意, 类常量的定义位于 main 方法的外部。因此,在同一个类的其他方法中也可以使用这个常量。而且,如果一个常量被声明为 public,那么其他类的方法也可以使用这个常量。 在这个示例中,Constants2.CM_PER-INCH 就是这样一个常量。

    3.4.4 枚举类型

    enum Size {SMALL, MEDIUM, LARGE, EXTRA_LARGE};
    Size s = Size.MEDIUM;
    

    Size类型的变量只能存储这个类型声明中给定的某个枚举值,或者特殊值 null,null表示这个变量没有设置任何值。

    3.5 运算符

    3.5.1 算术运算符

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

    3.5.2 数学函数与常量

    在 Math类中,包含了各种各样的数学函数。在编写不同类别的程序时,可能需要的函数也不同。

    函数 代码
    平方根 Math.sqrt
    幂次 Math.pow
    整数余数 Math.floorMod
    三角函数 Math,sin / Math.cos / Math.tan / Math.atan / Math.atan2
    指数函数 Math.exp / Math.log / Math.log10
    π Math.PI
    e Math.E
    提示:不必在数学方法名和常量名前添加前缀“ Math”, 只要在源文件的顶部加上下面这行代码就可以了。
    import static java.1ang.Math.*;
    例如:
    System.out.println("The square root of \u03C0 is " + sqrt(PI));
    

    3.5.3 数值类型之间的转换

    在这里插入图片描述
    在图 3-1 中有 6 个实心箭头,表示无信息丢失的转换;有 3 个虚箭头, 表示可能有精度损失的转换。 例如,123 456 789 是一个大整数, 它所包含的位数比 float 类型所能够表达的位数多。 当将这个整型数值转换为 float 类型时, 将会得到同样大小的结果,但却失去了一定的精度。
    当使用上面两个数值进行二元操作时(例如 n + f,n 是整数, f 是浮点数,) 先要将两个操作数转换为同一种类型,然后再进行计算。
    •如果两个操作数中有一个是 double 类型, 另一个操作数就会转换为 double 类型。
    •否则,如果其中一个操作数是 float 类型,另一个操作数将会转换为 float 类型。
    •否则, 如果其中一个操作数是 long 类型, 另一个操作数将会转换为 long 类型。
    •否则, 两个操作数都将被转换为 int 类型。

    3.5.4 强制类型转换

    在 Java 中, 允许进行这种数值之间的类型转换。
    当然, 有可能会丢失一些信息。在这种情况下,需要通过强制类型转换( cast) 实现这个操作。强制类型转换的语法格式是在圆括号中给出想要转换的目标类型,后面紧跟待转换的变量名。例如:

    double x = 9.997;
    int nx = (int) x;
    

    这样, 变量 nx 的值为 9。强制类型转换通过截断小数部分将浮点值转换为整型。
    如果想对浮点数进行舍入运算, 以便得到最接近的整数(在很多情况下, 这种操作更有用) 那就需要使用 Math.round 方法:

    double x = 9.997;
    int nx = (int) Math.round(x);
    

    现在, 变量 nx 的值为 10。 当调用 round 的时候, 仍然需要使用强制类型转换( int) 。其原因是round 方法返回的结果为 long 类型,由于存在信息丢失的可能性,所以只有使用显式的强制类型转换才能够将 long 类型转换成 int 类型。

    3.5.5 结合幅值和运算符

    可以在赋值中使用二元运算符,这是一种很方便的简写形式。例如,

    X += 4;
    等价于:
    x = x + 4; (一般地, 要把运算符放在 = 号左边,如 *= 或 %=)

    3.5.6 自增与自减运算符

    自增、 自减运算符: n++ 将变量 n 的当前值加 1, n-- 则将 n 的值减 1。例 如, 以下代码:

    int n = 12; 
    n++; 
    

    将 n 的值改为 13。由于这些运算符会改变变量的值,所以它们的操作数不能是数值。例如, 4++ 就不是一个合法的语句。
    实际上, 这些运算符有两种形式;上面介绍的是运算符放在操作数后面的“ 后缀” 形式。
    还有一种“ 前缀” 形式:++n。后缀和前缀形式都会使变量值加 1 或减 1。但用在表达式中时,二者就有区别了。前缀形式会先完成加 1; 而后缀形式会使用变量原来的值

    int m = 7;
    int n = 7;
    int a = 2 * ++m; // now a is 16, m is 8
    int b = 2 * n++; // now b is 14, n is 8
    

    建议不要在表达式中使用 ++, 因为这样的代码很容易让人困惑,而且会带来烦人的 bug。

    3.5.7 关系和boolean运算符

    Java 包含丰富的关系运算符:要检测相等性,可以使用两个等号 ==。
    另外可以使用!= 检测不相等。
    最后, 还有经常使用的 < (小于、) > (大于)、<=(小于等于)和 >= (大于等于)运算符。
    Java 沿用了 C++ 的做法,使用 && 表示逻辑“ 与” 运算符,使用丨| 表示逻辑“ 或” 运算符。从 != 运算符可以想到,感叹号!就是逻辑非运算符。&& 和丨| 运算符是按照“ 短路” 方式来求值的: 如果第一个操作数已经能够确定表达式的值,第二个操作数就不必计算了。
    最后一点,Java 支持三元操作符?:,这个操作符有时很有用。如果条件为 true, 下面的表达式

    condition ? expression1 : expression2
    

    就为第一个表达式的值,否则计算为第二个表达式的值。例如,

    x < y ? x : y
    会返回 x 和 y 中较小的一个。
    

    3.5.8 位运算符

    处理整型类型时,可以直接对组成整型数值的各个位完成操作。这意味着可以使用掩码技术得到整数中的各个位。位运算符包括:

     & ("and") | ("or") ^ ("XOr") ~ ("not")
    

    这些运算符按位模式处理。例如, 如果 n 是一个整数变量,而且用二进制表示的 n 从右边数第 4 位为 1,则

    int fourthBitFromRight = (n & 0bl0000) / 0bl000;
    

    会返回 1,否则返回 0。利用 & 并结合使用适当的 2 的幂, 可以把其他位掩掉, 而只保留其中的某一位。
    另外,还有>> 和<< 运算符将位模式左移或右移
    最后,>>> 运算符会用 0 填充高位,这与**>>不同,它会用符号位填充高位**。不存在<<<运算符

    3.5.9 括号与运算符级别

    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • JAVA核心技术卷1 第11版: 官方下载地址:http://horstmann.com/corejava/corejava.zip 百度云链接:https://pan.baidu.com/s/13yOv0iyBWonv21Oytvrnhw提取码: fqwe
  • 对于《JAVA核心技术 卷1》(第11版) page43 第三章 3.5.8一节中有个描述如下: 加粗样式如果n是一个整数变量,而二进制表示的n从右边数第四位1,则 int forthBitFromRight = (n & 0b1000) / 0b1000; 会返回 1,...
  • 这个培训课程与《Java核心技术》(卷1 基础知识 原书第11版)是配套的,这一版已经做了全面更新以涵盖Java SE 9和10。 内容说明 本视频课程的前两课简要回顾Java的历史,一步一步地为你...
  • java核心技术卷一、二是...java核心技术卷二: 链接: https://pan.baidu.com/s/1C5zh-tX-I0mTOZcC4Qo8Tw 提取码: ps6n 注:此书为原书第8版,使用版本:java se 6。但现在好像已经出版到第11版了,大家也可以去其它
  • 核心Java程序设计技术

    2021-04-16 12:20:13
    本课程讲授的Java标准Java核心技术,对这个技术的全面掌握是开发基础软件系统不可或缺的。   六、怎样掌握Java程序设计技术   事实上,我不认为只通过这个课程就可以真正掌握Java程序设计技术。这个...
  • ​​2020年来了,你的flag立得...入门必读1Java核心技术 Ⅰ 基础知识(原书第11版)Java核心技术 Ⅱ 高级特性(原书第11版)全新原书中文第11版!Java领域极具影响力和价值的著作之一,与《Java编程思想》齐名,10余...

空空如也

空空如也

1 2
收藏数 31
精华内容 12
关键字:

java核心技术第11版卷1

java 订阅