JAVA初级复习知识点归纳
JDK的安装:
- 下载、安装
 - 配置环境变量
 
a) path:.;%JAVA_HOME%\bin;
b) JAVA_HOME:JDK的安装目录
c) classpath
JDK和JRE和JVM:
JAVA程序运行过程:
- 编译javac :把java源文件编译成class字节码文件
 - 运行java :运行class文件
 
标识符(给类、方法、变量起名):
- 以字母(采用Unicode字符集)、下划线、$ 开头
 - 其余部分可以是:字母(采用Unicode字符集)、下划线、$、数字
 - 不能为关键字
 
变量:
- 局部变量
 
定义在方法内或语句块内。 从属于方法或语句块。
使用之前,必须要手动初始化!
- 成员变量(实例变量 field)
 
定义在类里面、方法外面。 从属于对象!
如果我们没有手动初始化成员变量,系统会自动初始化。初始化的规则如下:
数字:0,0.0 布尔:false char:\u0000 引用类型:null
- 静态变量(类变量)
 
定义在类里面、方法外面、使用static修饰。 从属于类!
如果我们没有手动初始化静态变量,系统会自动初始化。初始化规则同成员变量。
数据类型:
- 基本数据类型
 
a) 数字
- 整数:byte(1个字节) short(2个字节) int(4个字节,整型常量默认该类型) long(8个字节)
 - 浮点数:float(4个字节) double(8个字节,浮点常量默认为该类型)
 
b) 字符 char(2个字节)
c) 布尔 boolean(1位)
- 引用类型(4个字节)
 
a) 数组
b) 对象
c) 接口
表达式:
- 类型的自动提升
 
如果有long,结果就是long。
如果有double,结果就是double。
- 强制转型
 
运算符:
- 赋值运算符(=)
 
if(b=true) if(b) if(c=3) if(3==c)
- 算术运算符
 - 关系运算符(==)
 
常见错误写法: 1<a<3 1<a&&a<3
- 逻辑运算符
 
&&, ||, !
&,| 3&4
- 位运算符
 
&,|, <<(左移一位相当于乘以2),>>>(右移一位相当于除以2)
3*4
- 扩展运算符
 
+=,-=,*=,/=,%=
- 三目运算符
 
(布尔表达式)?A:B
控制语句:
- 顺序结构
 - 选择结构
 
a) If
b) If else
c) If else if … else
d) switch 多值选择 表达式:int或char/short/byte, 枚举
break问题
- 循环结构
 
a) while 先判断后执行
b) for
c) do while 先执行后判断
break: 强制终止整个循环
continue:结束本次循环,继续下一次!
面向对象基础:
- 对象的进化史
 
a) 基本数据类型阶段 数据少 无数据管理时代
b) 数组 数据多了,将同类型的数据放到一起 弱管理
c) 结构体 数据多了,数据复杂了。将不同类型的数据放到一起 强管理
d) 对象 数据多了、类型复杂了、行为复杂了。将不同类型的数据放到一起 超强管理
对象和类:
对象是具体的,类是抽象的。 类也是一个模版,通过类这个模版我们也可以new
对象。
定义类:
public class 类名 {
//属性
private 数据类型 属性名; //建议增加相应的getter、setter方法
//方法
//构造方法
}
构造方法:
- 方法名必须跟类名保持一致
 - 无返回类型
 - 通过new来调用
 - 无参构造器问题:
 
a) 如果我们没有手动定义构造器,系统会自动为我们添加一个无参的构造器
b) 如果我们自己定义了构造器,系统就不会为我们添加无参构造器
- 构造方法的第一句总是:super,即调用直接父类的构造方法。
 
a) 有继承关系的构造方法调用的顺序
方法的重载(Overload):
两同(同一个类、同一个方法名)三不同(参数列表不同:;类型、个数、顺序)
返回值不同,构成重载吗? No
形参名称不同,构成重在吗? No
this:
普通方法中,调用本方法的对象。
构造方法中,正要初始化的对象。
还可以用来,调用其他的构造方法
super:
static:
用它修饰的变量和方法,就变成了静态变量和静态方法。从属于类。通过类名即可调用。实际存储于方法区中。
package:
package必须位于非注释行第一句。
包名:域名到这写
import:
引入外部的类
Import static :导入类的静态属性
final:
修饰变量:常量(命名规范:全部大写,多个单词之间通过下划线隔开)
修饰方法:不能被重写
修饰类: 不能被继承
面向对象的三大特征:
封装
通过private、default 、protected、public关键字实现属性或方法的封装。
“高内聚,低耦合”
继承
通过extends 。两个好处:
- 代码重用
 - 通过继承实现对现实世界更加准确的建模
 
类只有单继承,没有像C++那样的多继承
方法重写(Override)的要点:
=:方法名保持一致
>=: 子类权限修饰符可以大于等于父类的。
<=, <=: 子类的返回值类型小于等于父类的类型。 子类声明异常类型不能超过父类的类型。
Object类:
- 是我们所有类的根基类
 - toString
 - equals、hashcode
 - wait、notify、notifyAll
 
多态(polymorphism)
三个必要条件:继承、方法的重写、父类引用指向子类对象
动态绑定、静态绑定:
抽象类:
- 包含抽象方法的类,一定是抽象类。
 - 抽象类不能被new。
 - 抽象类可以包含:普通方法、成员变量、构造方法。
 
接口:
- interface
 - 类实现接口:implements 可以实现多个接口
 - 接口可以多继承
 - 接口定义的一组规范!实现现实世界中这样的逻辑::如果你是…则必须能…
 
内存机制:
栈
- 存放局部变量
 - 不可以被多个线程共享
 - 空间连续,速度快
 
堆
- 存放对象
 - 可以被多个线程共享
 - 空间不连续,速度慢。但是灵活
 
方法区
- 存放类的信息:代码、静态变量、字符串常量等
 - 可以被多个线程共享
 - 空间不连续,速度慢。但是灵活
 
垃圾回收器(GC Garbage Collection):
- 程序员不能调用垃圾回收器。但是可以通过System.gc()建议回收。
 - finallize:一般也不用的调
 
递归算法:
- 递归头:什么时候不调用自己
 - 递归体:什么时候调用自己
 
异常机制:
- try catch(先小后大) finally
 - 声明抛出异常:throws
 - 手动抛出异常:throw
 - 自定义异常
 
a) extends Exception或者他的子类
数组:
- 长度固定,不可变
 - 所有元素的类型一致。
 - 元素类型可以为任意类型
 - 通过下标来引用相关元素。下标不能超过length-1
 - 数组也是对象。数组的元素可以看做对象的成员变量。所以,成员变量自动初始化的规则也适用于数组元素。
 - 多维数组:数组的元素是数组
 - 数组的三种初始化的方式:
 
a) 动态初始化
b) 静态初始化: int[] a = {2,3,4}
c) 默认初始化
- Arrays类:包含了对数组元素的排序、查找。
 - 算法:
 
a) 冒泡排序
b) 二分法
容器:
- Collection
 
a) List(有序,可重复)
- ArrayList 底层用数组实现。线程不安全,效率高
 - LinkedList:底层用双向链表实现。线程不安全,效率高
 - Vector:底层用数组实现。线程安全,效率低
 
b) Set(无序,不可重复)
- HashSet(内部是使用HashMap实现)
 - Map
 
采用“key-value”来存储我们数据。
a) HashMap 线程不安全,效率高
b) HashTable线程安全,效率低
- Iterator
 
通过他,可以实现遍历容器中元素
- 泛型
 - Collections工具类
 
常用类:
- 包装类
 
实现了基本数据类型和对象的互相转化。
自动装箱、自动拆箱
- String/StringBuilder/StringBuffer
 
String:不可变字符序列
StringBuilder:可变字符序列,线程不安全
StringBuffer:可变字符序列,线程安全
- 时间:Date、DateFormat、Calendar
 
Date:使用毫秒数来表示我们的时间概念。
DateFormat:实现Date对象跟String对象的互相转化(根据指定格式互相转化)
Calendar: 日期类。实现了将人的日期的概念跟Date的互相转化
- File
 
代表文件或者目录的一个抽象
- Math
 
数学类
- 枚举
 
如果我们要定义一组常量,建议使用枚举。
不要学习和使用枚举的高级特性。
IO流:
- InputStream
 
a) FileInputStream
b) ByteArrayInputStream
c) ObjectInputStream
d) DataInputStream
e) BufferedInputStream
- OutputStream
 
a) FileoutputStream
b) ByteArrayOutputStream
c) ObjectOutputStream
d) DataOutputStream
e) PrintStream
f) BufferedOutputStream
- Reader
 
a) FileReader
b) InputStreamReader:转换流:将字节流转化成字符流
c) BufferedReader
- Writer
 
a) File Writer
b) OutputStream Writer:转换流:将字节流转化成字符流
c) Buffered Writer
多线程:
- 定义多线程类的两种方式:
 
a) Extends Thread
b) Implements Runnalbe
- 线程的状态:
 
a) new
b) 就绪状态(调用start方法后)
c) 运行状态
d) 阻塞状态
- sleep:不会释放持有的对象锁
 - join:等待另一个线程执行完成
 - wait:会释放持有的对象锁
 - synchronized。运行同步代码,但是没有获得指定对象的锁,于是进入指定对象的锁池等待。
 
e) 终止
- 不建议使用:stop、destroy直接终止。
 - 建议通过boolean变量,正常终止线程运行。
 - 线程的优先级
 
a) 1-10. 默认是5.
b) 优先级低只是意味着调用的概率低,并不是不被调用。
- 资源同步
 
synchronized修饰方法、语句块
- 死锁
 
建议不要同时持有多个对象的锁!
- “生产者-消费者”模式
 
网络编程:
- InetAddress:封装了IP和DNS,没有端口。
 - InetSocketAddress:封装了IP和端口
 - URL:代表一个网络的资源
 
a) openStream
- TCP通讯
 
a) 特点:面向连接、安全、稳定。
b) ServerSocket
c) Socket
- UDP通信
 
a) 特点:不面向连接。可能会丢数据。发送数据效率高。
b) DatagramPacket:数据打包
c) DategramSocket:数据发送和接收
GUI编程(AWT/SWING/SWT):
- 组件
 
a) Component(普通组件、容器)
- 布局管理器
 
a) FlowLayout
b) BorderLayout
c) CardLayout
d) GridLayout
- 事件
 
a) 事件对象:KeyEvent、MouseEvent….
b) 事件源对象:组件
c) 监听器(一般采用匿名内部类来定义):
KeyListener KeyAdapter
WindowListener WindowAdapter
MouseListener MouseAdapter
MouseMotionListener MouseMotionAdapter
- 菜单制作
 
a) MenuBar
b) Menu
c) MemuItem
d) CheckBoxMenuItem
e) MenuShortCut 定义菜单项的快捷键
多媒体编程:
- 字体Font
 - Graphics
 - 做音视频处理:JMF
 
JAVA初级复习知识点归纳的更多相关文章
- java中级,知识点归纳(一)
		
一.接口和抽象类的区别 抽象类中可以含有构造方法,而接口内不能有. 抽象类中可以有普通成员变量,而接口中不能有. 抽象类中可以包含非抽象的普通方法,而接口中所有方法必须是抽象的,不能有非抽象的普通方法 ...
 - Django知识点归纳总结之HTTP协议与URL
		
Django复习知识点归纳总结 1.HTTP协议  超文本传输协议(Hyper Text Transfer Protocol),是用于万维网服务器与本地浏览器之间的传输超文本的传送协议.  HTT ...
 - 给Java新手的一些建议----Java知识点归纳(J2EE and Web 部分)
		
J2EE(Java2 Enterprise Edition) 刚出现时一般会用于开发企业内部的应用系统,特别是web应用,所以渐渐,有些人就会把J2EE和web模式画上了等号.但是其实 J2EE 里面 ...
 - 引用面试官文章 :如何准备Java初级和高级的技术面试
		
本人最近几年一直在做java后端方面的技术面试官,而在最近两周,又密集了面试了一些java初级和高级开发的候选人,在面试过程中,我自认为比较慎重,遇到问题回答不好的候选人,我总会再三从不同方面提问,只 ...
 - Java基础复习笔记系列 八 多线程编程
		
Java基础复习笔记系列之 多线程编程 参考地址: http://blog.csdn.net/xuweilinjijis/article/details/8878649 今天的故事,让我们从上面这个图 ...
 - Java入门学习知识点汇总
		
Java入门重要知识点在这里总结一下,以方便日后复习,这部分内容主要有:变量和常量,常用的运算符,流程控制语句,数组,方法这些内容 一.变量和常量 1.Java关键字 先贴张图: 所有关键字区分大小写 ...
 - 【重走Android之路】【路线篇(二)】知识点归纳
		
[重走Android之路][路线篇(二)]知识点归纳 参考:http://blog.csdn.net/xujing81/article/details/7313507 第一阶段:Java面向对 ...
 - Java初级进阶中高级工程师必备技能
		
很多人学了javase以为自己学的已经很OK了,但是其实javase里边有很多的知识点是你不知道的,不管你找的是哪里的javase的视频,大多数是不会讲这些东西,而这些东西你平时业务又不会主动去接触, ...
 - JavaEE期末复习知识点总结
		
JavaEE期末复习知识点总结 Java企业应用开发环境 Maven的基础概念 Maven是一个项目管理工具,可以对 Java 项目进行构建.依赖管理 Maven仓库 Maven 仓库是项目中依赖的第 ...
 
随机推荐
- CAS4.0 server  环境的搭建
			
1.上cas的官网下载cas server 官网地址:https://github.com/Jasig/cas/releases,下载好后 解压下载的 cas-server-4.0.0-release ...
 - linux命令规范
			
Linux文件后缀: 系统文件:*.conf *.rpm 系统与脚本:*.c *.php 存档文件和压缩文件:*.tar *.gz ……… Linux文件命名规则: 1.大小写敏感 2.除 ...
 - vue2.0  自定义指令详解
			
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
 - C/C++ 运算符重载、数据类型转换
			
1.运算符就是“+”.“>>”等符号,对运算符重载实质就是对函数的重载,这样运算符就能在原有基础上增加新功能,不能自己定义新运算符,只能对已有运算符重载,重载运算符后不能改变运算符本身的特 ...
 - iOS重签
			
由于渠道推广需要,可能需要多个包做备份推广,区别是icon.游戏名称.登录logo.bundleid.签名证书.支付Consumables不同,其他游戏包体完全相同. 反复修改多次文件提交Jenkin ...
 - 【经验分享】IMX6开发板编译问题及解决方法
			
本文转自迅为IMX6开发板售后讨论群,分享给大家~物理主机 win10 64 位专业版.虚拟机 VM12 Pro.开发环境采用迅为提供的开发环境:Ubuntu12.04.2 .镜像采用最新的:iTOP ...
 - Python界面编程之六----布局
			
布局(转载于–学点编程吧)通过实践可知采用了布局之后能够让我们的程序在使用上更加美观,不会随着窗体的大小发生改变而改变,符合我们的使用习惯. 绝对位置程序员以像素为单位指定每个小部件的位置和大小. 当 ...
 - D. Gourmet choice并查集,拓扑结构
			
D. Gourmet choice time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...
 - hdfs深入:07、hdfs的文件的读取过程
			
详细步骤解析 1. Client向NameNode发起RPC请求,来确定请求文件block所在的位置: 2. NameNode会视情况返回文件的部分或者全部block列表,对于每个block,Name ...
 - iis如何在dos中注册
			
iis如何在dos中注册 2009-09-23 08:13 提问者采纳 cd \cd c:\windows\microsoft.net\framework\v2.0.50727aspnet_r ...