JDK的安装:

  1. 下载、安装
  2. 配置环境变量

a) path:.;%JAVA_HOME%\bin;

b) JAVA_HOME:JDK的安装目录

c) classpath

JDK和JRE和JVM:

JAVA程序运行过程:

  1. 编译javac :把java源文件编译成class字节码文件
  2. 运行java :运行class文件

标识符(给类、方法、变量起名):

  1. 以字母(采用Unicode字符集)、下划线、$ 开头
  2. 其余部分可以是:字母(采用Unicode字符集)、下划线、$、数字
  3. 不能为关键字

变量:

  1. 局部变量

定义在方法内或语句块内。 从属于方法或语句块。

使用之前,必须要手动初始化!

  1. 成员变量(实例变量 field)

定义在类里面、方法外面。   从属于对象!

如果我们没有手动初始化成员变量,系统会自动初始化。初始化的规则如下:

数字:0,0.0   布尔:false  char:\u0000   引用类型:null

  1. 静态变量(类变量)

定义在类里面、方法外面、使用static修饰。  从属于类!

如果我们没有手动初始化静态变量,系统会自动初始化。初始化规则同成员变量。

数据类型:

  1. 基本数据类型

a) 数字

  1. 整数:byte(1个字节)  short(2个字节)   int(4个字节,整型常量默认该类型)   long(8个字节)
  2. 浮点数:float(4个字节)  double(8个字节,浮点常量默认为该类型)

b) 字符 char(2个字节)

c) 布尔  boolean(1位)

  1. 引用类型(4个字节)

a) 数组

b) 对象

c) 接口

表达式:

  1. 类型的自动提升

如果有long,结果就是long。

如果有double,结果就是double。

  1. 强制转型

 

运算符:

  1. 赋值运算符(=)

if(b=true)  if(b)       if(c=3)  if(3==c)

  1. 算术运算符
  2. 关系运算符(==)

常见错误写法: 1<a<3    1<a&&a<3

  1. 逻辑运算符

&&, ||, !    

&,|    3&4

  1. 位运算符

&,|, <<(左移一位相当于乘以2),>>>(右移一位相当于除以2)

3*4

  1. 扩展运算符

+=,-=,*=,/=,%=

  1. 三目运算符

(布尔表达式)?A:B

控制语句:

  1. 顺序结构
  2. 选择结构

a) If

b) If else

c) If else if … else

d) switch  多值选择  表达式:int或char/short/byte, 枚举

break问题

  1. 循环结构

a) while  先判断后执行

b) for

c) do  while  先执行后判断

break: 强制终止整个循环

continue:结束本次循环,继续下一次!

面向对象基础:

  1. 对象的进化史

a) 基本数据类型阶段       数据少     无数据管理时代

b) 数组                数据多了,将同类型的数据放到一起     弱管理

c) 结构体          数据多了,数据复杂了。将不同类型的数据放到一起    强管理

d) 对象    数据多了、类型复杂了、行为复杂了。将不同类型的数据放到一起 超强管理

对象和类:

对象是具体的,类是抽象的。  类也是一个模版,通过类这个模版我们也可以new

对象。

定义类:

public  class  类名 {

//属性

private  数据类型  属性名;   //建议增加相应的getter、setter方法

//方法

//构造方法

}

构造方法:

  1. 方法名必须跟类名保持一致
  2. 无返回类型
  3. 通过new来调用
  4. 无参构造器问题:

a) 如果我们没有手动定义构造器,系统会自动为我们添加一个无参的构造器

b) 如果我们自己定义了构造器,系统就不会为我们添加无参构造器

  1. 构造方法的第一句总是:super,即调用直接父类的构造方法。

a) 有继承关系的构造方法调用的顺序

方法的重载(Overload):

两同(同一个类、同一个方法名)三不同(参数列表不同:;类型、个数、顺序)

返回值不同,构成重载吗?  No

形参名称不同,构成重在吗?  No

this:

普通方法中,调用本方法的对象。

构造方法中,正要初始化的对象。

还可以用来,调用其他的构造方法

super:

static:

用它修饰的变量和方法,就变成了静态变量和静态方法。从属于类。通过类名即可调用。实际存储于方法区中。

package:

package必须位于非注释行第一句。

包名:域名到这写

import:

引入外部的类

Import  static :导入类的静态属性

final:

修饰变量:常量(命名规范:全部大写,多个单词之间通过下划线隔开)

修饰方法:不能被重写

修饰类: 不能被继承

面向对象的三大特征:

封装

通过private、default 、protected、public关键字实现属性或方法的封装。

“高内聚,低耦合”

继承

通过extends 。两个好处:

  1. 代码重用
  2. 通过继承实现对现实世界更加准确的建模

类只有单继承,没有像C++那样的多继承

方法重写(Override)的要点:

=:方法名保持一致

>=: 子类权限修饰符可以大于等于父类的。

<=, <=: 子类的返回值类型小于等于父类的类型。 子类声明异常类型不能超过父类的类型。

Object类:

  1. 是我们所有类的根基类
  2. toString
  3. equals、hashcode
  4. wait、notify、notifyAll

多态(polymorphism)

三个必要条件:继承、方法的重写、父类引用指向子类对象

动态绑定、静态绑定:

抽象类:

  1. 包含抽象方法的类,一定是抽象类。
  2. 抽象类不能被new。
  3. 抽象类可以包含:普通方法、成员变量、构造方法。

接口:

  1. interface
  2. 类实现接口:implements    可以实现多个接口
  3. 接口可以多继承
  4. 接口定义的一组规范!实现现实世界中这样的逻辑::如果你是…则必须能…

内存机制:

  1. 存放局部变量
  2. 不可以被多个线程共享
  3. 空间连续,速度快

  1. 存放对象
  2. 可以被多个线程共享
  3. 空间不连续,速度慢。但是灵活

方法区

  1. 存放类的信息:代码、静态变量、字符串常量等
  2. 可以被多个线程共享
  3. 空间不连续,速度慢。但是灵活

垃圾回收器(GC   Garbage  Collection):

  1. 程序员不能调用垃圾回收器。但是可以通过System.gc()建议回收。
  2. finallize:一般也不用的调

递归算法:

  1. 递归头:什么时候不调用自己
  2. 递归体:什么时候调用自己

异常机制:

  1. try  catch(先小后大)  finally
  2. 声明抛出异常:throws
  3. 手动抛出异常:throw
  4. 自定义异常

a) extends  Exception或者他的子类

数组:

  1. 长度固定,不可变
  2. 所有元素的类型一致。
  3. 元素类型可以为任意类型
  4. 通过下标来引用相关元素。下标不能超过length-1
  5. 数组也是对象。数组的元素可以看做对象的成员变量。所以,成员变量自动初始化的规则也适用于数组元素。
  6. 多维数组:数组的元素是数组
  7. 数组的三种初始化的方式:

a) 动态初始化

b) 静态初始化:  int[] a = {2,3,4}

c) 默认初始化

  1. Arrays类:包含了对数组元素的排序、查找。
  2. 算法:

a) 冒泡排序

b) 二分法

容器:

  1. Collection

a) List(有序,可重复)

  1. ArrayList 底层用数组实现。线程不安全,效率高
  2. LinkedList:底层用双向链表实现。线程不安全,效率高
  3. Vector:底层用数组实现。线程安全,效率低

b) Set(无序,不可重复)

  1. HashSet(内部是使用HashMap实现)
  2. Map

采用“key-value”来存储我们数据。

a) HashMap 线程不安全,效率高

b) HashTable线程安全,效率低

  1. Iterator

通过他,可以实现遍历容器中元素

  1. 泛型
  2. Collections工具类

常用类:

  1. 包装类

实现了基本数据类型和对象的互相转化。

自动装箱、自动拆箱

  1. String/StringBuilder/StringBuffer

String:不可变字符序列

StringBuilder:可变字符序列,线程不安全

StringBuffer:可变字符序列,线程安全

  1. 时间:Date、DateFormat、Calendar

Date:使用毫秒数来表示我们的时间概念。

DateFormat:实现Date对象跟String对象的互相转化(根据指定格式互相转化)

Calendar: 日期类。实现了将人的日期的概念跟Date的互相转化

  1. File

代表文件或者目录的一个抽象

  1. Math

数学类

  1. 枚举

如果我们要定义一组常量,建议使用枚举。

不要学习和使用枚举的高级特性。

IO流:

  1. InputStream

a) FileInputStream

b) ByteArrayInputStream

c) ObjectInputStream

d) DataInputStream

e) BufferedInputStream

  1. OutputStream

a) FileoutputStream

b) ByteArrayOutputStream

c) ObjectOutputStream

d) DataOutputStream

e) PrintStream

f) BufferedOutputStream

  1. Reader

a) FileReader

b) InputStreamReader:转换流:将字节流转化成字符流

c) BufferedReader

  1. Writer

a) File Writer

b) OutputStream Writer:转换流:将字节流转化成字符流

c) Buffered Writer

多线程:

  1. 定义多线程类的两种方式:

a) Extends  Thread

b) Implements  Runnalbe

  1. 线程的状态:

a) new

b) 就绪状态(调用start方法后)

c) 运行状态

d) 阻塞状态

  1. sleep:不会释放持有的对象锁
  2. join:等待另一个线程执行完成
  3. wait:会释放持有的对象锁
  4. synchronized。运行同步代码,但是没有获得指定对象的锁,于是进入指定对象的锁池等待。

e) 终止

  1. 不建议使用:stop、destroy直接终止。
  2. 建议通过boolean变量,正常终止线程运行。
  3. 线程的优先级

a) 1-10.  默认是5.

b) 优先级低只是意味着调用的概率低,并不是不被调用。

  1. 资源同步

synchronized修饰方法、语句块

  1. 死锁

建议不要同时持有多个对象的锁!

  1. “生产者-消费者”模式

网络编程:

  1. InetAddress:封装了IP和DNS,没有端口。
  2. InetSocketAddress:封装了IP和端口
  3. URL:代表一个网络的资源

a) openStream

  1. TCP通讯

a) 特点:面向连接、安全、稳定。

b) ServerSocket

c) Socket

  1. UDP通信

a) 特点:不面向连接。可能会丢数据。发送数据效率高。

b) DatagramPacket:数据打包

c) DategramSocket:数据发送和接收

GUI编程(AWT/SWING/SWT):

  1. 组件

a) Component(普通组件、容器)

  1. 布局管理器

a) FlowLayout

b) BorderLayout

c) CardLayout

d) GridLayout

  1. 事件

a) 事件对象:KeyEvent、MouseEvent….

b) 事件源对象:组件

c) 监听器(一般采用匿名内部类来定义):

KeyListener    KeyAdapter

WindowListener   WindowAdapter

MouseListener   MouseAdapter

MouseMotionListener    MouseMotionAdapter

  1. 菜单制作

a) MenuBar

b) Menu

c) MemuItem

d) CheckBoxMenuItem

e) MenuShortCut  定义菜单项的快捷键

多媒体编程:

  1. 字体Font
  2. Graphics
  3. 做音视频处理:JMF

JAVA初级复习知识点归纳的更多相关文章

  1. java中级,知识点归纳(一)

    一.接口和抽象类的区别 抽象类中可以含有构造方法,而接口内不能有. 抽象类中可以有普通成员变量,而接口中不能有. 抽象类中可以包含非抽象的普通方法,而接口中所有方法必须是抽象的,不能有非抽象的普通方法 ...

  2. Django知识点归纳总结之HTTP协议与URL

    Django复习知识点归纳总结 1.HTTP协议 ​ 超文本传输协议(Hyper Text Transfer Protocol),是用于万维网服务器与本地浏览器之间的传输超文本的传送协议. ​ HTT ...

  3. 给Java新手的一些建议----Java知识点归纳(J2EE and Web 部分)

    J2EE(Java2 Enterprise Edition) 刚出现时一般会用于开发企业内部的应用系统,特别是web应用,所以渐渐,有些人就会把J2EE和web模式画上了等号.但是其实 J2EE 里面 ...

  4. 引用面试官文章 :如何准备Java初级和高级的技术面试

    本人最近几年一直在做java后端方面的技术面试官,而在最近两周,又密集了面试了一些java初级和高级开发的候选人,在面试过程中,我自认为比较慎重,遇到问题回答不好的候选人,我总会再三从不同方面提问,只 ...

  5. Java基础复习笔记系列 八 多线程编程

    Java基础复习笔记系列之 多线程编程 参考地址: http://blog.csdn.net/xuweilinjijis/article/details/8878649 今天的故事,让我们从上面这个图 ...

  6. Java入门学习知识点汇总

    Java入门重要知识点在这里总结一下,以方便日后复习,这部分内容主要有:变量和常量,常用的运算符,流程控制语句,数组,方法这些内容 一.变量和常量 1.Java关键字 先贴张图: 所有关键字区分大小写 ...

  7. 【重走Android之路】【路线篇(二)】知识点归纳

    [重走Android之路][路线篇(二)]知识点归纳   参考:http://blog.csdn.net/xujing81/article/details/7313507   第一阶段:Java面向对 ...

  8. Java初级进阶中高级工程师必备技能

    很多人学了javase以为自己学的已经很OK了,但是其实javase里边有很多的知识点是你不知道的,不管你找的是哪里的javase的视频,大多数是不会讲这些东西,而这些东西你平时业务又不会主动去接触, ...

  9. JavaEE期末复习知识点总结

    JavaEE期末复习知识点总结 Java企业应用开发环境 Maven的基础概念 Maven是一个项目管理工具,可以对 Java 项目进行构建.依赖管理 Maven仓库 Maven 仓库是项目中依赖的第 ...

随机推荐

  1. CAS4.0 server 环境的搭建

    1.上cas的官网下载cas server 官网地址:https://github.com/Jasig/cas/releases,下载好后 解压下载的 cas-server-4.0.0-release ...

  2. linux命令规范

    Linux文件后缀: 系统文件:*.conf    *.rpm 系统与脚本:*.c  *.php 存档文件和压缩文件:*.tar   *.gz ……… Linux文件命名规则: 1.大小写敏感 2.除 ...

  3. vue2.0 自定义指令详解

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. C/C++ 运算符重载、数据类型转换

    1.运算符就是“+”.“>>”等符号,对运算符重载实质就是对函数的重载,这样运算符就能在原有基础上增加新功能,不能自己定义新运算符,只能对已有运算符重载,重载运算符后不能改变运算符本身的特 ...

  5. iOS重签

    由于渠道推广需要,可能需要多个包做备份推广,区别是icon.游戏名称.登录logo.bundleid.签名证书.支付Consumables不同,其他游戏包体完全相同. 反复修改多次文件提交Jenkin ...

  6. 【经验分享】IMX6开发板编译问题及解决方法

    本文转自迅为IMX6开发板售后讨论群,分享给大家~物理主机 win10 64 位专业版.虚拟机 VM12 Pro.开发环境采用迅为提供的开发环境:Ubuntu12.04.2 .镜像采用最新的:iTOP ...

  7. Python界面编程之六----布局

    布局(转载于–学点编程吧)通过实践可知采用了布局之后能够让我们的程序在使用上更加美观,不会随着窗体的大小发生改变而改变,符合我们的使用习惯. 绝对位置程序员以像素为单位指定每个小部件的位置和大小. 当 ...

  8. D. Gourmet choice并查集,拓扑结构

    D. Gourmet choice time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...

  9. hdfs深入:07、hdfs的文件的读取过程

    详细步骤解析 1. Client向NameNode发起RPC请求,来确定请求文件block所在的位置: 2. NameNode会视情况返回文件的部分或者全部block列表,对于每个block,Name ...

  10. iis如何在dos中注册

    iis如何在dos中注册   2009-09-23 08:13 提问者采纳   cd \cd c:\windows\microsoft.net\framework\v2.0.50727aspnet_r ...