Java基础回顾
学习基础背景:Acmer、有C/C++基础
以【Java语言程序设计(基础篇)】第10版为参考(感谢YJJ的推荐),列出部分知识点,注意思考背后的原因和好处坏处。
【14-16章——关于可视化编程的章节】跳过
【17章——IO博大精深】不断学习
【附录ADHI】相对较有实际意义的附录
对于foreach,获取的是值不是引用。即在如下操作后,vals不发生改变:
for (Integer val : vals) {
val += 1;
}
(Page 10)
Java有三个版本:
Java 标准版(Java Standard Edition, Java SE)可以用来开发客户端的应用程序。应用程序可以独立运行或作为applet在Web浏览器中运行。
Java 企业版(Java Enterprise Edition, Java EE)可以用来开发服务器端的应用程序,例如,Java servlet和JavaServer Pages(JSP),以及JavaServer Faces(JSF)。
Java 微型版(Java Micro Edition, Java ME)用来开发移动设备的应用程序,例如手机。
(Page 42)
为了提高可读性,Java允许在数值直接量的两个数字间使用下划线。如
Integer million = 1_000_000;
(Page 104)
在一个Java程序中,java.lang包中的所有类是隐式导入的。
(Page 142)
输入重定向和输出重定向
java demo < input.txt > output.txt
(Page 224)
具有同样类型的可变长度的参数可以传递给函数,并将作为数组对待。
在方法声明中,指定类型后紧跟着省略号(...)。只能给方法中指定一个可变长参数,同时该参数必须是最后一个参数。如
public static void printMax(double... numbers) {}
(Page 244)
锯齿数组(ragged array)的各行的长度可以不相同。如,
Integer[][] arr = {
{1, 2, 3}
,{1, 2}
,{1}
};
(Page 288)
通常将与实例无关的变量或方法声明为静态,与实例相关的变量或方法声明为非静态。
(Page 290)
为了防止用户创建类的实例,可以将构造方法设为private。
(Page 303)
关键字this可以用于调用同一个类的另一个构造方法。如:
public class Circle {
private Double radius;
public Circle(Double radius) {
this.radius = radius;
}
public Circle() {
this(1.0);
}
}
Java要求在构造方法中,语句this(参数列表)应在任何其他可执行语句之前出现。
如果一个类有多个构造方法,最好尽可能使用this(参数列表)实现它们。通常,无参数或参数少的构造方法可以用this(参数列表)调用参数多的构造方法。这样做通常可以简化代码,使类易于阅读和维护。
(Page 328)
Integer、Double、String等类的实例都是不可变的。
注意以下输出结果为 false 跟 true
String s1 = "Hello";
String s2 = new String("Hello");
String s3 = "Hello";
System.out.println(s1 == s2);
System.out.ptintln(s1 == s3);
(Page 333)
StringBuffer和StringBuilder类似于String类,区别在于String类是不可改变的。
StringBuffer是同步的,StringBuilder是异步的。
(Page 354)
要调用父类构造函数就必须使用关键字super,而且这个调用必须是构造函数的第一条语句。如果没有显式调用super,编译器会自动将super();作为构造函数的第一条语句。
(Page 364)
a instanceof B用于判断变量a是否为类B的实例。
(Page 377)
子类可以重写父类的protected函数,并把可见性改为public。但是,子类不能削弱父类定义的函数的可访问性。如,一个函数在父类中定义为public,在子类中也必须定义为public。
(Page 379)
多态:Object obj = new Apple();
动态绑定:当从引用变量调用实例函数时,该变量的实际类型在运行时决定使用该方法的哪个实现
(Page 400)
即使在到达finally块之前有一个return语句,finally块还是会执行。
(Page 409)
JDK 7提供了下面的新的try-with-resources语法来自动关闭文件。资源必须是AutoCloseable的子类型,比如PrintWriter,具有一个close()函数。资源的声明和创建必须在同一行语句中。
try(
PrintWriter printWriter = new PrintWriter(file);
) {
printWriter.println("Hello, QQ");
}
(Page 428)
抽象函数是非静态的。不能使用new操作从一个抽象类创建一个实例。
(Page 436)
接口中所有的数据域都是public static final而且所有的函数都是public abstract,所以Java允许忽略这些修饰符。
(Page 442)
对于protected native Object clone() throws CloneNotSupportedException;
关键字native表明这个函数不是用Java写的,但它是JVM针对自身平台实现的。
Java基础回顾的更多相关文章
- 四、Android学习第四天——JAVA基础回顾(转)
(转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 四.Android学习第四天——JAVA基础回顾 这才学习Android的 ...
- 【Spring学习】【Java基础回顾-数据类型】
Java基础回顾过程中,之前对于Java相关基础知识都是从这个人的博客看一些,那边的内容看一下,觉得不够系统化,决定用xmind脑图的形式,将Java基础知识回顾的作为一个系列,当前正在做的会包含: ...
- Java基础回顾_第二部分_Java流程控制
Java基础回顾_第二部分 Java流程控制 Scanner对象(扫描器,捕获输入) import java.util.Scanner; public class Demo01 { public st ...
- Java基础回顾_第一部分
Java基础回顾 基本数据类型 数值类型 什么是字节? 位(bit):是计算机中数据的最小单位 字节(byte):是计算机中数据处理的基本单位,习惯上用大写字母B来表示 1 B = 8 bit 字符: ...
- 1、java基础回顾与加强
一. 基础回顾 1 集合 1.1 集合的类型与各自的特性 ---|Collection: 单列集合 ---|List: 有存储顺序, 可重复 ---|ArrayList: 数组实现, ...
- java基础回顾(2)
java中只有两种类型:基础类型.引用类型 8中基本类型:byte short int long float double char boolean,其中byte类型取值范围[-2^7~2^7-1] ...
- java基础回顾之IO
Java的IO 是Java运用重要部分之一,涉及到的内容也比较多,容易混淆,一段时间不用,可能就会遗忘,要时常回顾记忆一下: (图片来源于网络) Java 流在处理上分为字符流和字节流. 字符流处理的 ...
- Java基础回顾一
1.JDK和JRE的区别: JDK:java开发工具包,提供java的开发环境和运行环境 JRE:java运行环境,为java的运行提供所需要的环境 2. ==和qruals的区别: == 基本类型: ...
- 输出 n=6 的三角数字阵(JAVA基础回顾)
package itcast.feng; import java.util.Scanner; //需求:输出 n=6 的三角数字阵 //1 //2 3 //4 5 6 //7 8 9 10 //11 ...
随机推荐
- mysql-You can’t specify target table for update in FROM clause错误
mysql中You can't specify target table for update in FROM clause错误的意思是说,不能先select出同一表中的某些值,再update这个表( ...
- P2特征(一)
很多人在提到项目的特征,肯定能说出来很多的内容,但是在英国体系下,项目的特点有哪些呢?这些特点引深的内容又有什么深度的含义. 项目具有临时性:很多人都知道项目是临时的,结束了就团队成员 ...
- Http client 请求
public String sendPost(String url, String param) { System.out.println("------------------ 1&quo ...
- Python的多线程(threading)与多进程(multiprocessing )
进程:程序的一次执行(程序载入内存,系统分配资源运行).每个进程有自己的内存空间,数据栈等,进程之间可以进行通讯,但是不能共享信息. 线程:所有的线程运行在同一个进程中,共享相同的运行环境.每个独立的 ...
- Drop it
FCC题目:队友该卖就卖,千万别舍不得. 让我们来丢弃数组(arr)的元素,从左边开始,直到回调函数return true就停止. 第二个参数,func,是一个函数.用来测试数组的第一个元素,如果返回 ...
- python3安装lxml(windows)
爬虫时通常要安装LXML,对于通过一下命令行 1 pip install lxml 出现如下错误的解决方法 1 lxml Unable to find vcvarsall.bat 1. 安装wheel ...
- linux下从SVN checkout目录源码下来
需求:我们替换http请求为https协议,要查看全不全,得到源码中去检查,所以自动化扫源码查询.但是得先有源码包啊.源码包直接从SVN上checkout 1.下载 [root@v50 0.02 sr ...
- 写了个项目 Web-Rtmp: 使用 WebSocket 在网页上播放 RTMP 直播流
http://neue.v2ex.com/t/316766 虽说浏览器里用 js 解码'播放'视频的方案已经有几个了... 为什么不再多一个呢... 基本原理: 服务端使用 websockify 中转 ...
- Java数据结构——平衡二叉树的平衡因子(转自牛客网)
若向平衡二叉树中插入一个新结点后破坏了平衡二叉树的平衡性.首先要找出插入新结点后失去平衡的最小子树根结点的指针.然后再调整这个子树中有关结点之间的链接关系,使之成为新的平衡子树.当失去平衡的最小子树被 ...
- Web Api系列教程第2季(OData篇)(二)——使用Web Api创建只读的OData服务
前言 很久没更新了,之前有很多事情,所以拖了很久,非常抱歉.好了,废话不多说,下面开始正题.本篇仍然使用上一季的的项目背景(系列地址http://www.cnblogs.com/fzrain/p/34 ...