![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
读书笔记
Tracy_Jia178
程序妞~
展开
-
Thinking in Java 第17章 容器深入研究(17.8-17.9)
//声明:部分内容引自《Java编程思想(第四版)》机械工业出版社【理解 Map】– 性能。HashMap 使用散列码,来取代对键的缓慢搜索。使用对象的 hashCode() 方法进行快速查询,此方法能够显著提高性能。【散列与散列码】– Object.equals() 方法必须满足下列 5 个条件( 默认的 Object.equals() 只是比较对象的地址。):自反性。原创 2016-07-21 15:54:20 · 296 阅读 · 0 评论 -
Thinking in Java 第22章 图形化用户界面 【捕获事件】
捕获事件//声明:部分内容引自《Java编程思想(第四版)》机械工业出版社对每个监听器类只使用一个实例的时候,把 ActionListener 实现成匿名内部类会更方便。例:// Button2b.java// Using anonymous inner classes.package net.mindview.util;import javax.swing.*;import java.awt原创 2016-07-02 09:00:24 · 461 阅读 · 0 评论 -
Thinking in Java 第22章 图形化用户界面 【Swing 显示框架】
练习3答案package net.mindview.util;import javax.swing.*;import static net.mindview.util.SwingConsole.*;/** * Created by JT on 2016/7/1. */public class SubmitSwingProgram extends JFrame { private JLabe原创 2016-07-01 22:06:02 · 634 阅读 · 0 评论 -
Thinking in Java 第21章 并发
//声明:部分内容引自《Java编程思想(第四版)》机械工业出版社【基本的线程机制】– 定义任务。只需要实现 Runnable 接口并编写 run() 方法,使得该任务可以执行你的命令。– Thread 类。调用 Thread 对象的 start() 方法为线程执行必须的初始化操作。– Executor。管理 Thread 对象。在客户端和人物执行之间提供一个间接层。允许管理异步任原创 2016-07-29 11:43:07 · 419 阅读 · 0 评论 -
Thinking in Java 第20章 注解(元数据)
//声明:部分内容引自《Java编程思想(第四版)》机械工业出版社– 定义在 java.lang 中的标准注解:@Override,表示当前的方法定义将覆盖超类中的方法。如果你不小心拼写错误,或者方法签名对不上被覆盖的方法,编译器就会发出错误提示。@Deprecated,如果程序员使用了注解为它的元素,那么编译器会发出警告信息。@SuppressWarnings,关闭不当的编译器警告原创 2016-07-28 13:28:54 · 276 阅读 · 0 评论 -
Thinking in Java 第18章 Java I/O 系统(18.9-18.14)
//声明:部分内容引自《Java编程思想(第四版)》机械工业出版社【进程控制】– 你经常会需要在 Java 内部执行其他操作系统的程序,并且要控制这些程序的输入和输出。Java 类库提供了执行这些操作的类。原创 2016-07-25 09:38:38 · 421 阅读 · 0 评论 -
Thinking in Java 第19章 枚举类型
//声明:部分内容引自《Java编程思想(第四版)》机械工业出版社原创 2016-07-22 16:05:29 · 210 阅读 · 0 评论 -
Java8 特性—— Lambda 表达式
Java 8 的一个大亮点是引入 Lambda 表达式,使用它设计的代码会更加简洁。当开发者在编写 Lambda 表达式时,也会随之被编译成一个函数式接口。下面这个例子就是使用 Lambda 语法来代替匿名的内部类,代码不仅简洁,而且还可读。 没有使用 Lambda 的老方法:button.addActionListener(new ActionListener(){ public voi转载 2016-07-22 14:11:50 · 240 阅读 · 0 评论 -
Java8 特性—— default
为什么要有Default方法在 Java8 发布之际,有件事情就显得非常重要,即在不破坏 Java 现有实现架构的情况下能往接口里增加新方法。引入 Default 方法到 Java8,正是为了这个目的:优化接口的同时,避免跟现有实现架构的兼容问题。看下面例子:List<?> list = ...list.forEach(...);// Lambda code goes here上面的 foreach转载 2016-07-22 14:06:37 · 270 阅读 · 0 评论 -
Java 中 Collection 与 Collections 的区别
1、java.util.Collection 是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式。 Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └Set 2、jav转载 2016-07-22 13:43:51 · 260 阅读 · 0 评论 -
Thinking in Java 第17章 容器深入研究(17.10-17.14)
//声明:部分内容引自《Java编程思想(第四版)》机械工业出版社【连接接口的不同实现】– Hashtable、Vector、Stack 的“特征”是,它们是过去遗留下来的类,目的只是为了支持老的程序,所以最好不要再新的程序中使用。– 容器之间的区别通常是:所使用的接口是由什么样的数据结构实现的。 例:ArrayList 和 LinkedList都实现了 List 接口,但 ArrayList 底原创 2016-07-22 08:58:50 · 608 阅读 · 0 评论 -
对给定值进行操作
题目: Write a C expression that will yield a word consisting of the least significant byte of x, and the remaining bytes of y. For operands x = 0x89ABCDEF and y = 0x76543210, this would give 0x765432E原创 2017-05-01 22:16:30 · 443 阅读 · 0 评论 -
操作系统信息存储与表示
低位存放在高地址,高位存放在低地址。原创 2017-05-01 15:32:31 · 390 阅读 · 0 评论 -
C语言位运算
/* Get most significant byte from x */int get_msb(int x) {/* Shift by w-8 */int shift_val = (sizeof(int)-1)<<3;/* Arithmetic shift */int xright = x >> shift_val;/* Zero all but LSB */return xrig原创 2017-05-02 15:06:41 · 281 阅读 · 0 评论 -
位运算
#include #include #include /*如果 x 所有位都为 1 ,返回 1 ,否则,返回 0 */bool x_equals_1(int x) { return !(~x);}/*如果 x 所有位都为 0 ,返回 1 ,否则,返回 0 */bool x_equals_0(int x) { return !x;}/*如果 x 的最低原创 2017-05-02 20:52:45 · 328 阅读 · 0 评论 -
位运算
#include <stdio.h>#include <stdlib.h>#include <string.h>/* Return 1 when x contains an odd number of 1s; 0 otherwise.Assume w=32. */int odd_ones(unsigned x){ int y = x; int count_ones = 0;原创 2017-05-02 22:06:17 · 342 阅读 · 0 评论 -
Thinking in Java 第4章 控制执行流程 【Foreach 语句】
//声明:部分内容引自《Java编程思想(第四版)》机械工业出版社for(float x : f){定义一个 float 类型的变量 x,将每一个 f 的元素赋值给 x 。 相当于:for(int i=0; i<f.length; i++){ x = f[i];原创 2016-07-03 12:57:28 · 254 阅读 · 0 评论 -
Thinking in Java 第5章 初始化与清理 【可变参数列表】
//声明:部分内容引自《Java编程思想(第四版)》机械工业出版社可变参数列表:static void printArray(Object... args)自动包装:static void printArray(Object[] args)两者比较:– 可变参数列表结果等同于自动包装。– 可变参数列表不依赖于自动包装机制。– 可变参数列表与自动包装机制可以和谐共处。可变参数列表使用注意:– 一个方法原创 2016-07-03 13:00:04 · 536 阅读 · 0 评论 -
Thinking in Java 第17章 容器深入研究(17.1-17.7)
//声明:部分内容引自《Java编程思想(第四版)》机械工业出版社【完整的容器分类法】【填充容器】– fill()。– Generator。– Map 生成器。– Abstract 类。享元模式:它使用共享物件,用来尽可能减少内存使用量以及分享资讯给尽可能多的相似物件;它适合用于只是因重复而导致使用无法令人接受的大量内存的大量物件。通常物件中的部分状态是可以分享。常见做法是把它们放在外部数据结构,当原创 2016-07-20 10:00:09 · 861 阅读 · 0 评论 -
Thinking in Java 第16章 数组
//声明:部分内容引自《Java编程思想(第四版)》机械工业出版社【数组是第一级对象】– 对象数组和基本类型数组在使用上几乎是相同的,唯一的区别是对象数组保存的是引用,基本类型数组直接保存基本类型的值。– 基本类型数组的值在不进行显式初始化的情况下,会被自动初始化,对象数组会被初始化为 null。【返回一个数组】– 一个方法可以返回一个数组,当使用完毕后,垃圾回收器会清理掉它。【数组与泛型】– 通常原创 2016-07-19 08:45:00 · 262 阅读 · 0 评论 -
Thinking in Java 第15章 泛型(15.5-15.19)
//声明:部分内容引自《Java编程思想(第四版)》机械工业出版社【匿名内部类】– 泛型可应用于内部类以及匿名内部类。【擦除的神秘之处】– 在泛型代码内部,无法获得任何有关泛型参数类型的信息。– Java 泛型是使用擦除来实现的,因此在使用泛型时,任何具体的类型信息都被擦除了,唯一知道的就是正在使用一个对象。例:List<String> 和 List<Integer> 在运行时事实上是相同的类型,这原创 2016-07-11 18:54:15 · 369 阅读 · 0 评论 -
Thinking in Java 第15章 泛型(15.1-15.4)
//声明:部分内容引自《Java编程思想(第四版)》机械工业出版社– 泛型实现了参数化类型的概念,使代码可以应用于多种类型。【简单泛型】– 一个泛型容器可以持有某个基类以及它的导出类。因为多态与泛型不冲突。– 元组(数据传送对象或信使):将一组对象直接打包存储于其中的一个单一对象。这个原创 2016-07-11 08:30:17 · 306 阅读 · 0 评论 -
Thinking in Java 第14章 类型信息
//声明:部分内容引自《Java编程思想(第四版)》机械工业出版社【Class 对象】– RTTI: Run-Time Type Identification.– 所有的类都是在对其第一次使用时,动态加载到 JVM 中的。构造器也是类的静态方法,使用 new 操作符创建类的新对象也会被当作对类的静态成员的引用。Java 程序的各个部分是在必需时才加载的。练习1在 ToyTest.java 中,将 T原创 2016-07-09 08:20:46 · 689 阅读 · 0 评论 -
Thinking in Java 第13章 字符串
//声明:部分内容引自《Java编程思想(第四版)》机械工业出版社【正则表达式】– split():将字符串从正则表达式匹配的地方切开。– “\W”:非单词字符。”\w”:一个单词字符。– 创建正则表达式:参见 java.util.regex 包中的 Pattern 类。原创 2016-07-08 16:03:01 · 250 阅读 · 0 评论 -
Thinking in Java 第12章 通过异常处理错误
//声明:部分内容引自《Java编程思想(第四版)》机械工业出版社【创建自定义异常】– 异常与记录日志: 例:package exceptions;//: exceptions/LoggingExceptions.java// An exception that reports through a Logger.import java.util.logging.*;import java.i原创 2016-07-08 13:50:22 · 378 阅读 · 0 评论 -
Thinking in Java 第11章 持有对象(容器)
//声明:部分内容引自《Java编程思想(第四版)》机械工业出版社– 使用泛型容器:ArrayList<Apple> apples = new ArrayList<Apple>(); 可以在编译期防止将错误类型的对象放置到容器中;在取出元素时,也不必强制类型转换。– 所有的 Collection 都可以用 foreach 语法遍历。– 注意:package holding;//: holding/A原创 2016-07-07 14:15:08 · 367 阅读 · 0 评论 -
Thinking in Java 第10章 内部类
//声明:部分内容引自《Java编程思想(第四版)》机械工业出版社– 内部类自动拥有对其外围类所有成员的访问权。– 必须使用外部类对象来创建内部类的对象:DotNew.Inner dni = dn.new Inner();– 可以在一个方法里面或在任意的作用域内定义内部类。– 内部类在编译过程中与其他类一起被编译,即使嵌套在 if 语句中也是事先编译过的。– 匿名内部类:// Returning a原创 2016-07-07 09:48:06 · 230 阅读 · 0 评论 -
Thinking in Java 第9章 接口
//声明:部分内容引自《Java编程思想(第四版)》机械工业出版社– 当要实现一个接口时,在接口中被定义的方法必须被定义为是 public 的。– 如果要创建一个不带任何方法定义和成员变量的基类,应该将它创建为一个接口。– 在打算组合的不同接口中使用相同的方法名通常会造成代码可读性的混乱,应尽量避免。– 接口中的任何域都自动是 public static final 的。– 在接口中定义的域不能是原创 2016-07-06 17:25:29 · 177 阅读 · 0 评论 -
Thinking in Java 第8章 多态
//声明:部分内容引自《Java编程思想(第四版)》机械工业出版社– 只有非 private 方法才可以被覆盖。– 如果某个方法是静态的,它的行为就不具有多态性。原创 2016-07-06 16:21:18 · 380 阅读 · 0 评论 -
Thinking in Java 第7章 复用类
//声明:部分内容引自《Java编程思想(第四版)》机械工业出版社– 组合语法:在新的类中产生现有类。– 初始化的三种方法:在定义对象的地方。在类的构造器中。惰性初始化:在正要使用这些对象之前。这种方式可减少额外的负担。原创 2016-07-05 09:58:30 · 326 阅读 · 0 评论 -
Thinking in Java 第6章 访问权限控制 【Java 访问权限修饰词】
//声明:部分内容引自《Java编程思想(第四版)》机械工业出版社package access;//: access/Cake.java// Accesses a class in a separate compilation unit.class Cake { public static void main(String[] args) { Pie x = new Pie();原创 2016-07-04 15:28:30 · 237 阅读 · 0 评论 -
Thinking in Java 第6章 访问权限控制 【包:库单元】
//声明:部分内容引自《Java编程思想(第四版)》机械工业出版社– 当编写一个 Java 源代码文件时,此文件通常被称为编译单元(有时也被称为转译单元)。每个编译单元都有一个后缀名 .java。– 当编译一个 .java 文件时,在 Java 文件中的每个类都会有一个输出文件,而该输出文件的名称与 .java 文件中每个类的名称相同,只是多了一个后缀名 .class。因此,在编译少量 .java原创 2016-07-04 15:24:44 · 323 阅读 · 0 评论 -
Thinking in Java 第5章 初始化与清理 【枚举类型】
//声明:部分内容引自《Java编程思想(第四版)》机械工业出版社枚举类型,关键字 enum– 枚举类型的实例是常量,按命名习惯它们都用大写字母表示,如果在一个名字中有多个单词,用下划线将它们隔开。 例:package initialization;//: initialization/Spiciness.javapublic enum Spiciness { NOT, MILD, MEDIU原创 2016-07-04 09:27:15 · 433 阅读 · 0 评论 -
位运算
#include <stdio.h>#include <stdlib.h>#include <string.h>/** Generate mask indicating leftmost 1 in x. Assume w=32.* For example 0xFF00 -> 0x8000, and 0x6600 --> 0x4000.* If x = 0, then return 0.*原创 2017-05-02 22:24:42 · 265 阅读 · 0 评论