JAVA基础知识注意事项
JAVA核心技术卷一 (第十版)
下面是需要注意的:
- 只有方法名和参数类型叫做方法的签名, 不同的返回类型值不能作为方法的签名。(4.6.1)
- 这是域与局部变量的主要不同点。 必须明确地初始化方法中的局部变量。 但是,如果没有初始化类中的域, 将会被自动初始化为默认值(0、 false 或 null )。(4.6.2)
- 初始化块或静态的初始化块在创建对象的时候执行里面的代码。(4.6.7)
- 从编译器的角度来看, 嵌套的包之间没有任何关系。(4.7)
例如:ava.util 包与java.util.jar 包毫无关系。每一个都拥有独立的类集合。
import java.util.* 语句不能导入java.util.jar包中的类. - 标记为 public 的部分可以被任意的类使用;
标记为 private 的部分只能被定义它们的类使用。
如果没有指定 public 或 private, 这 个 部分(类、方法或变量)可以被同一个包中的所有方法访问。 - 使用super 调用构造器的语句必须是子类构造器的第一条语句。(5.1.3)
- 在覆盖一个方法的时候,子类方法不能低于超类方法的可见性。(5.1.6)
- 如果将一个类声明为 final, 只有其中的方法自动地成为 final, 而不包括域。(5.1.7)
- 如果方法很简短、 被频繁调用且没有真()正地被覆盖, 那么即时编译器就会将这个方法进行内联处理。(5.1.7)
- 将一个子类的引用赋给一个超类变量, 编译器是允许的。但将一个超类的引用赋给一个子类变量, 必须进行类型转换 。(5.1.8)
- 对本包和所有子类可见 ---- protected。(5.1.10)
- instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。
- Object类中的equals方法将判断两个对象是否具有相同的引用。但是对于大多数类来说并没有意义。(5.2.1)
- 数组继承了 object 类的 toString 方法,数组类型将按照旧的格式打印,生成字符串“ [I@la46e30” ,修正的方式是调用静态方法 Arrays.toString
- ArrayList 如果已经清楚或能够估计出数组可能存储的元素数量, 就可以在填充数组之前调ensureCapacity方法:
- 对象包装器类是不可变的,对象包装器类还是 final ,装箱和拆箱是编译器认可的。
- 允许将一个数组传递给可变参数方法的最后一个参数。main方法
- javap是 Java class文件分解器,可以反编译(即对javac编译的文件进行反编译),也可以查看java编译器生成的字节码。用于分解class文件。 javap -p <类文件>
- Class类中的newlnstance( )调用默认的构造器,如果这个类没有默认的构造器, 就会抛出一个异常,如果想要提供参数,可以是使用Constructor中名字相同的的方法。
- 一个 Class 对象实际上表示的是一个类型, 而这个类型未必一定是一种类。
- lambda 表达式中捕获的变量必须实际上是最终变量
- lambda 表达式的体与嵌套块有相同的作用域。
- 强烈建议解耦合 try/catch 和 try/finally 语句块
- Java 语 言 规 范 将 派 生 于 Error 类 或 RuntimeException 类的所有异常称为非受查
( unchecked ) 异常, 所有其他的异常称为受查(checked) 异常。 - for each 循环可以与任何实现了 Iterable 接口的对象一起工作, 但是Collection 接口扩展了 Iterable 接口。
- 四种循环
1. arrayList.iterator().forEachRemaining(System.out::println);
2. arrayList.forEach(System.out::println);
3. for (String str : arrayList)
System.out.println(str);
4. Iterator it = arrayList.iterator();
while(it.hasNext())
System.out.println(it.next());
- 标记接口 RandomAccess 用它来测试一个特定的集合是否支持高效的随机访问
- 在ArrayList的无参构造函数上的注释 Constructs an empty list with an initial capacity of ten. 初始化的时候并没有真正的创建10个空间,这是惰性初始模式对象,在这篇.和这篇文章中可以一探究竟。
- 内部类的对象有一个隐式引用, 它引用了实例化该内部对象的外围类对象。通过这个指针, 可以访问外围类对象的全部状态,但是static内部类并没有。
- 局部类还有一个优点。它们不仅能够访问包含它们的外部类, 还可以访问局部变量。不过, 那些局部变量必须事实上为 final
- 双括号初始化
- 一个方法不能修改一个基本数据类型的参数
- 一个方法可以改变一个对象参数的状态
- 一个方法不能让对象参数引用一个新的对象
- add 方法只依赖于迭代器的位置, 而 remove 方法依赖于迭代器的状态。
- Vector 类的所有方法都是同步的,synchronized
- 如果 a_equals(b) 为 true, a 与 b 必须具有相同的散列码。
JAVA基础知识注意事项的更多相关文章
- Java基础知识总结(超级经典)
Java基础知识总结(超级经典) 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java ...
- 毕向东—Java基础知识总结(超级经典)
Java基础知识总结(超级经典) 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java ...
- 【Java面试题系列】:Java基础知识常见面试题汇总 第一篇
文中面试题从茫茫网海中精心筛选,如有错误,欢迎指正! 1.前言 参加过社招的同学都了解,进入一家公司面试开发岗位时,填写完个人信息后,一般都会让先做一份笔试题,然后公司会根据笔试题的回答结果,确定 ...
- 黑马毕向东Java基础知识总结
Java基础知识总结(超级经典) 转自:百度文库 黑马毕向东JAVA基础总结笔记 侵删! 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部 ...
- Java基础知识(壹)
写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...
- java基础知识小总结【转】
java基础知识小总结 在一个独立的原始程序里,只能有一个 public 类,却可以有许多 non-public 类.此外,若是在一个 Java 程序中没有一个类是 public,那么该 Java 程 ...
- Java基础知识系列——String
最近晚上没有什么事(主要是不加班有单身),就复习了一下Java的基础知识.我复习Java基础知识主要是依据Java API和The Java™ Tutorials. 今天是第一篇,复习了一下Strin ...
- 学习android学习必备的java基础知识--四大内部类
学习android必备的java基础知识--四大内部类 今天学习android课程,因为我的主专业是JAVA,但是兴趣班却有这其他专业的同学,学习android 需要具备一些java的基础知识,因此就 ...
- JAVA基础知识之网络编程——-网络基础(Java的http get和post请求,多线程下载)
本文主要介绍java.net下为网络编程提供的一些基础包,InetAddress代表一个IP协议对象,可以用来获取IP地址,Host name之类的信息.URL和URLConnect可以用来访问web ...
随机推荐
- Spring boot 梳理 - @SpringBootConfiguration
@SpringBootConfiguration继承自@Configuration,二者功能也一致,标注当前类是配置类, 并会将当前类内声明的一个或多个以@Bean注解标记的方法的实例纳入到sprin ...
- Gradle 梳理:安装、入门使用方法
Gradle 教程:第一部分,安装[翻译] 原文地址:http://rominirani.com/2014/07/28/gradle-tutorial-part-1-installation-se ...
- Hadoop点滴-外围概念
有句话说的好“大数据胜于好算法” 硬盘存储容量在不断提升的同时,访问速度(硬盘数据读取速度)却没有同步增长:1990年,访问全盘需要5分钟,20年后,需要2.5小时 不同的业务大数据,存储在一套HDF ...
- 玩转 SpringBoot 2 之整合 JWT 上篇
前言 该文主要带你了解什么是 JWT,以及JWT 定义和先关概念的介绍,并通过简单Demo 带你了解如何使用 SpringBoot 2 整合 JWT. 介绍前在这里我们来探讨一下如何学习一门新的技术, ...
- 国庆佳节第四天,谈谈我月收入增加 4K 的故事
01.起承 在我下定决心改变的这将近 1 年的时间里,遇到了很多很多有故事的人,以及有趣的事.自我的认知改变特别大!尤其是收入,比去年同时期增加了 4K. 4K,可能也就买 100 斤猪肉.但是对于身 ...
- 3. Git与TortoiseGit基本操作
1. GitHub操作 本节先简单介绍 git 的使用与操作, 然后再介绍 TortoiseGit 的使用与操作. 先看看SVN的操作吧, 最常见的是 检出(Check out ...), 更新 (U ...
- [Note] Windows 10 Python 3.6.4 安装scrapy
直接使用pip install安装时会在安装Twisted出错,以下主要是解决Twisted的安装问题 1. 安装wheel pip install wheel 2. 安装Twisted 在Pytho ...
- 《构建之法》项目管理&典型用户和场景
项目管理 PM的能力要求和任务: 1.观察.理解和快速学习能力 2.分析管理能力 3.一定的专业能力 4.自省的能力 在一个项目中,PM的具体任务: 1.带领团队形成团队的目标/远景,把抽象的目标 ...
- Angular.js 入门(一)
最近在学习angular.js,为此方便加深对angular.js前端框架的理解,因此写下这篇angular.js入门 首先介绍下什么是angular.js? AngularJS 是一个 JavaSc ...
- Java的IO操作之关闭流
我们知道,当结束对一个流的操作时,需要调用流的close()方法对其进行释放,这将释放掉与这个流有关的所有资源,包括文件句柄.端口等.如果不关闭流,垃圾回收机制将无法识别你是否已使用完这个文件,读取的 ...