Think in Java 第一次浏览 杂记_1~6章
参数化类型解决方案,叫做泛型。
异常处理机制并不是面向对象的特征,在面向对象编程出现前就已经存在。
Java解决客户端编程的方式,有一种是applet小程序,只在web浏览器中运行,作为网页的一部分被下载下来,但是这种解决方案有弊端,需要客户端浏览器内置java解释器。
寄存器是cpu的组成部分,用于存储数据,访问最快。
ram是随机访问存储器,位于内存,用于存储数据,访问速度其次。
堆栈和堆都位于ram中,但是使用内存的速度存在差异,一般来说堆栈的速度相对较高一些,但是Java语言提供了堆内存分配的解决方案。通过内存分配方式和GC两种机制来提高效率(没读完,目前知道的是这两种)。Java在堆中分配内存类似传送带,首先已使用的内存会尽量紧挨着,新分配内存时堆指针移到下一个紧挨着的位置,这意味着有专门的已使用内存和未使用内存会有专门的记录。虽然这带来了部分开销,但开销并不大。其次GC回收垃圾时,同样会对堆内存的使用进行处理,例如某些GC算法会将已使用内存重新排列为紧挨着的。
bigInteger支持任意精度的整数。
bigDecimal支持任意精度的浮点数。
方法名和参数列表组合构成一个方法的方法签名,唯一定位一个方法。这意味着编译器区分重载方法时,是通过方法签名来的,也就是说方法返回值并不能区分。也就解释了为什么重载时只是方法返回值不同为什么不能通过编译。
Java中对象也有别名现象。不同引用如果指向同一个对象,那么操作任意引用,对另一个引用都会产生影响。
Java中short类型和char类型都是两字节,但是所代表的最大值并不相同。由于char类型是无符号正数,所以最大可表示0xffff,而short类型是有符号整数,最大表示0x7fff。
Java的左移运算符,低位补0。Java的右移运算符,正数高位补0,负数高位补1。Java的无符号右移运算符,高位补0。
Java表达式中的最大数据类型代表了结果的数据类型,因为编译器会将表达式中其它小数据类型自动提升为最大数据类型。
Java中逗号作为操作符时,只在for循环的控制表达式中。
Java的构造器可以使用this关键字,并且可以使用this关键字调用其它重载的构造器,但是只能调用一个,不能多次调用多个构造器,且使用this关键字调用其它构造器时,必须放在构造器的第一行。其它方法不能调用构造器。
finalize方法,实在GC发生时会调用。这不代表着由于调用了finalize方法GC就能够执行。因此该方法并不是用来释放内存的,且并不适合任何由new创建的对象的内存释放。它只适合某些特殊方式创建的对象的内存释放,如Native Method 调用的其它编程语言产生的对象,这些对象GC并不会处理维护,因此可以在finalize方法中调用本地方法进行释放。
程序从运行到结束,GC并不是一定执行的,如果内存并没有被耗尽,GC可能不会执行。因为本身GC的执行也会带来一部分内存开销。这是得不偿失的。程序结束时会自动将资源归还,省去了GC的步骤。
Java中的不定参数,实际上是通过Object[]数组来实现的。在1.5以前不支持不定参数时,人们都是采用这种方式来达到这个功能。
关键字package 是为了解决构件捆绑到内聚的类库单元的问题。类库,指的是一个class文件的集合。编译单元,指的是源代码文件,也就是.java文件。构件,指的是编译单元中的公共接口,也就是public类,编译单元中可以有其它的类,这些类只是为了为public类提供支持的。 换句话说,package是为了使构件能够在类库中唯一定位到。(个人理解)
内聚和耦合,内聚指的是模块内部的各成分之间相关联的程度的度量,耦合指的是模块之间,各个模块之间相关联的程度的度量。
访问权限控制符的产生,实际上有两个主要原因。①不想让客户端程序员随意的修改类库中某些类的成员属性或传递的消息。②将接口和实现分离开来,由于客户端程序员最终使用的是接口,看不到接口的具体实现,因此如果类库中具体实现修改了实现的方式,也不会对客户端程序员产生影响。
Think in Java 第一次浏览 杂记_1~6章相关推荐
- java第一次作业0
lsl321 java第一次作业 #1. 本章学习总结 你对于本章知识的学习总结 本章我们学习了各种java相关文件的使用,以及码云,博客,pat等程序辅助软件,这些对于我们专业的学习有非常大的帮助, ...
- Java第一次实训报告
Java第一次实训报告 项目(GUI学生信息管理系统) 一.创建数据库和表 1.利用NaviCat创建数据库student,设置字符集为utf8 1.1数据库和表的目录 2.创建学校表 2.1创建t_ ...
- JAVA第一次实验报告
三.实验内容.要求和实验步骤: 1.在自己电脑上,安装JDK,配置Java环境变量 2.在自己电脑上,安装IDEA开发环境 3.编写并编译运行一个Java应用程序 a) 打开记事本,参照教材例子1,编 ...
- Java黑皮书课后题第11章:11.2(Person Student Employee Faculty Staff类)设计一个名为Person的类及其两个名为Student和Employee的子类
Java黑皮书课后题第11章:11.2(Person Student Employee Faculty Staff类) 题目 缺陷 UML图 代码 Test02_MyDate.java:用于参考的My ...
- java核心技术卷I 第1-3章 笔记
java核心技术卷I 第1-3章 本书将详细介绍下列内容: ● 面向对象程序设计 ● 反射与代理 ● 接口与内部类 ● 异常处理 ● 泛型程序设计 ● 集合框架 ● 事件监听器模型 ● 使用Swing ...
- 尚硅谷Java入门视频教程导读及第一章
尚硅谷Java入门视频教程导读及第一章 JAVA基础学习导读-编程入门 0.1概述 0.2 计算机硬件介绍 中央处理器(CPU) 存储设备 内存 比特(bit)和字节(byte) 内存 输入和输出设备 ...
- 《Java疯狂讲义》第3章(数据类型和运算符):博主李俊德的阅读笔记与知识拓展
一.问题背景 博主在准备应聘的笔试.面试时,再次采用了多年以来的Java工具书<Java疯狂讲义>,并决定在每章详细复习后都要在博客中写下详细的阅读笔记. 二.阅读笔记与知识拓展--< ...
- Java黑皮书课后题第10章:**10.25(新的字符串split方法)String类中的split方法会返回一个字符串数组,该数组是由分隔符分隔开的子串构成的
Java黑皮书课后题第10章:**10.25(新的字符串split方法) 题目 代码 运行实例 题目 代码 public class Test25 {public static String[] sp ...
- Java黑皮书课后题第10章:10.21(被5或6整除)找出能被5或6整除的大于Long.MAX_VALUE的前10个数字
Java黑皮书课后题第10章:10.21(被5或6整除)找出能被5或6整除的大于Long.MAX_VALUE的前10个数字 题目 代码 结果 题目 都在上面 代码 import java.math.B ...
最新文章
- 2018-3-31(nature-Inspired Metaheuristic Algorithm Second Edition)笔记二---Random Walk and levy flighes
- VALSE 青年学者 | 心中的象牙塔:怎样才能拿到理想的教职offer?
- 三框架:使用数据源dbcp注意
- LNMP(php-fpm的pool,慢执行日志,定义open_bashdir,php-fpm进程管理
- 为什么catch了异常,但事务还是回滚了?
- 正则表达式收藏(四)之MySQL的正则
- SQLite B+树实现代码
- [旧稿]How To Add Simple Install WebPart Menu to the Right Click On a CAB File
- leetcode--207. 课程表
- 4_python基础—判断(if)语句
- 【layui】【laydate】设置可以选择相同的年份范围
- 零基础开始学 Web 前端开发,有什么建议?(视频教程)
- iOS 让UIButton根据文字内容自动计算宽高
- word 插入脚注尾注和删除页眉页脚
- ids for this class must be manually assigned before calling save()报错解决方法
- xmanager5链接linux配置,使用Xmanager连接CentOS 5.5
- 《Android开发源码精编解析》最新PDF版开源,安卓工程师进阶实战
- USB 电池充电规范
- HotSpot VM垃圾收集器——Serial Parallel CMS G1垃圾收集器的JVM参数、使用说明、GC分析
- Java基于springboot+vue的流浪动物救助收养平台 nodejs 前后端分离