当前位置:文档之家› JAVA基础知识点总结

JAVA基础知识点总结

JAVA基础知识点总结
JAVA基础知识点总结

JA V A基础知识点总结

目录

1. JA V A简介 (3)

1.1 java体系结构 (3)

1.2 java特点 (3)

1.3 JDK与JRE (3)

1.4 第一个java程序 (3)

1.5 java程序的开发步骤 (3)

2. 基本数据类型 (3)

2.1 标志符 (3)

2.2 关键字 (3)

2.3 常量 (3)

2.4 变量 (3)

2.5 基本数据类型 (3)

2.6 基本数据类型之间的转换 (3)

3. 运算符与流程控制 (4)

3.1 运算符:算术,关系,赋值,逻辑(着重注意),位运算符 (4)

3.2 流程控制语句 (4)

3.3 switch的规则 (4)

3.4 for,while,do while搞清楚代码的执行流程 (4)

3.5 break,continue (4)

3.6 流程控制代码编写 (4)

4. 面向对象基本语法 (5)

4.1 定义一个类 (5)

4.2 实例化对象 (5)

4.3 区分引用类型与基本数据类 (5)

4.4 如何操作对象:使用.操作符 (5)

5. 访问控制,方法定义与调用,重载,方法重写 (6)

5.1 访问控制 (6)

5.1.1 package包的使用 (6)

5.1.2 继承(简单概念) (6)

5.1.3 四个访问级别 (6)

5.2 重载与重写 (6)

5.2.1 重载 (6)

5.2.2 重写 (6)

5.3 类与对象的生命周期 (7)

5.3.1 类与对象的初始化过程 (7)

5.3.2 垃圾回收机制 (7)

5.4 单例模式 (7)

6. 继承,抽象类,接口 (7)

6.1 继承: (7)

6.1.1 继承的语法 (7)

6.2.2 继承中的构造方法 (7)

6.3.3 对象的转型 (8)

6.4.4 多态 (8)

6.2 抽象类: (8)

6.3 static :静态关键字 (8)

6.3.1 static属性 (8)

6.3.2 static方法 (8)

6.4 final关键字 (8)

6.5 接口 (9)

7. 异常处理 (9)

7.1 什么是异常,为什么要引入异常 (9)

7.2 java的异常的分类 (9)

7.3 异常的处理方式 (10)

7.4 try,catch,finally中程序的运行过程 (10)

7.5 区分RuntimeException与被检查异常 (10)

8. 数组 (10)

9. 常用类 (11)

10. 集合框架 (12)

11. JDBC (13)

12. 图形-布局,常用Swing组件 (14)

13. 图形-事件处理,绘图 (15)

14. 多线程 (15)

15. IO (17)

16. 网络 (17)

17. 类与对象的生命周期 (17)

18. 补充知识点 (17)

1. JAVA简介

1.1 java体系结构:j2se,javaweb,j2ee

1.2 java特点:平台无关(虚拟机),垃圾回收(使得java更加稳定)

1.3 JDK与JRE,JDK:java开发环境,JRE:java运行环境

1.4 第一个java程序:HelloWorld,java的入口是main(public static void

main(String[] args))

1.5 java程序的开发步骤:.java 编译(javac)成 .class 运行(java) .class 文件

2. 基本数据类型

2.1 标志符:自己可以取名字的地方称为标志符

*标志符的规则:1,只能是字母,数字,下划线,$;不能以数字开头;严格区分大小写;不能使用关键字作为标志符

2.2 关键字:关键字都是小写

2.3 常量:如123,“hello”

*也可以使用final定义常量(请参照Math.PI),如public static final int SLOW_SPEED=1;

2.4 变量:变量的本质是内存中的一小块区域,用这个区域保存数据

*变量申明:类型变量名字

*变量必须先声明,再赋值,再使用

*注意区分基本数据类型的变量与引用数据类型的变量

*变量的作用域,局部变量与成员变量:变量在哪个大括号里定义,就在哪里有效,出了大括号无效

2.5 基本数据类型:java数据类型分为两大类:基本数据类型,引用数据类型

*基本数据类型分为4类8中:boolean,char,byte,short,int,long,float,double

*boolean类型只有true,false

*char是Unicode编码

*float,double是有精度的(不是绝对精确的)

2.6 基本数据类型之间的转换

*123字面常量是int型,12.3字面常量是double型,8888888888888这个字面常量有问题(因为它已经超出int的范围,改成8888888888888L)

*boolean与其他类型不兼容

*byte,short,char之间相互运算的时候,先转换为int,再进行运算

*小容量的数据类型可以自动转换为大容量的数据类型:byte,short,char——>int—

—>long——>float——>double

*大容量转换为小容量的数据类型,要进行强制转换

*多种数据类型进行运算的时候,先转换为容量最大的数据类型再进行运算,整个表达式的类型是容量最大的数据类型

*必须掌握PPT上的习题

3. 运算符与流程控制

3.1 运算符:算术,关系,赋值,逻辑(着重注意),位运算符

*自加自减++,--,注意顺序

*关系运算符的结果是boolean类型

*逻辑运算符注意短路与&&,短路或 ||

*三元运算符 (逻辑表达式) ? 表达式一 :表达式二

3.2 流程控制语句:条件(if,switch),循环(for,while,do while),break与continue

3.3 switch的规则:

*switch只能探测:byte,short,char,int 类型的值(case后面也只能是这4种)

*switch中小心case的穿透(代码会一直运行,直到遇到break停止,建议每个case写一个break)

*default:如果没有找到匹配的case,则执行default

3.4 for,while,do while搞清楚代码的执行流程(PPT上有图,必须记住)

3.5 break,continue

*都可以用在循环里面,break还可以用在switch中

*break跳出单前的代码块(结束循环)

*continue:跳过本轮循环,继续下一轮循环(循环会继续,仅仅跳过本次)

3.6 流程控制代码编写:可以灵活的组合这些流程控制代码,注意一定要写{ }

4. 面向对象基本语法

需要大家掌握:类与对象的区别,如何定义一个类,如何实例化一个对象

4.1 定义一个类

*使用class关键字定义类,注意类名大写

*成员属性:成员属性不赋值会有默认值(默认值规则参考PPT)

*成员方法

*构造方法:没有任何返回值,名字与类名一样,构造方法的本意是用来初始化对象(初始化对象的属性值)

4.2 实例化对象:Student s = new Student();

*使用new + 构造方法实例化对象

*new 在堆中开辟了对象的空间,并且给属性赋上默认值

*接下来调用构造方法,执行构造方法中的代码

*最后返回对象的引用

4.3 区分引用类型与基本数据类型

*引用类型的变量在内存中有两块区域,一块是引用本身,另一块是引用所指向的对象*基本数据类型在内存中只有一块空间:里面存着值

4.4 如何操作对象:使用.操作符

*使用对象名.属性操作对象的属性(如:stu.age = 18;)

*使用对象名.方法调用对象的方法(如:stu.study());

*this:每个对象都有this,this是指向本身的引用,代表本身

4.5. 必须能够独立写出Point3D的代码(题目在PPT上)

5. 访问控制,方法定义与调用,重载,方法重写

5.1 访问控制

5.1.1 package包的使用

*使用 package 定义包:package只能放在代码的第一行

*import:导包,可以到入包下所有 import java.io.*;可以导入具体的一个类 import java.io.Reader;

*包的作用:1,分类;2,隐藏(封装的作用),3,便于管理

*java本身提供了一些包:https://www.doczj.com/doc/b011702266.html,ng(核心类,此包如需要引入),java.util(集合框架以及其他常用类),java.io(输入输出),java.awt,javax.swing(图形)

5.1.2 继承(简单概念):使用extends关键字表示继承

*子类继承父类的所有属性

*子类继承父类除private(非同包的时候也除默认的方法)外的所有方法

*子类对象拥有super引用,表示父类的引用,可以使用super明确的调用父类的方法或属性

5.1.3 四个访问级别,从大到小:public ,protected,默认,private

*注意访问级别是针对类来讲的,不是针对对象!!!!!!!

*注意类的访问修饰符只能使用public 或默认

*学了访问控制后:类的属性都写private,通过set/get方法对属性进行赋值,取值5.2 重载与重写

1.判断是否是重载,或者是否是重写,如果不是重写或者重载,就不受重写重载规则的约束

5.2.1 重载:一个类当中,有方法名相同,参数不同的方法,称为重载

*不能只改返回值:不能根据方法的返回进行重载

5.2.2 重写:在继承当中,子类将父类的方法重新写了一遍:重写的方法与被重写的方法拥有相同的方法签名(返回值类型,方法名,参数列数)

*.重写的方法能够改变被重写的方法的访问级别,注意只能是相等或者扩大

*.重写的方法不能抛出比被重写方法更多的异常,注意只能缩小异常的范围

*.如果被重写的方法是具体的,重写之后不能改为abstract

5.3 类与对象的生命周期

5.3.1 类与对象的初始化过程:

*静态属性先初始化,而且仅仅初始化一次

*首先给静态属性进行声明,并赋默认值,然后代码从上往下执行静态代码块或静态赋值*每创建一个对象,就先实例化成员属性:首先给成员属性声明,赋默认值,然后.执行赋值语句

*成员属性初始化后再调用构造方法

5.3.2 垃圾回收机制

*java虚拟使用垃圾回收机制进行垃圾回收

*垃圾回收本身是一个线程(当内存不够用的时候,一般会进行垃圾回收)

*垃圾回收不能通过程序来调用,仅仅能够通过System.gc()建议虚拟机进行垃圾回收

*当进行垃圾回收时,会调用对象的finalize方法

5.4 单例模式:一个类仅仅能有一个实例(设计模式的一种)

*构造方法必须为私有的

*提供静态的方法来获得对象

*提供静态的属性,该属性是该类的一个对象

6. 继承,抽象类,接口

6.1 继承:

6.1.1 继承的语法:使用extends关键字表示继承

*子类继承父类所有的属性

*私有方法不能被继承

*super关键字表示父类的引用,可以用super来调用父类的方法或属性

6.2.2 继承中的构造方法:了解下面的知识点以及实例化对象时代码的执行过程

*子类的构造过程必须调用其基类的构造方法

*子类可以在自己的构造过程中使用super (arg_list)来调用基类的构造方法*如果调用super,必须写在子类构造方法的第一行

*可以使用this(argument_list)调用本类的另外的构造方法

*如果子类的构造方法中没有显示的调用基类的构造方法,系统默认调用基类无参数的构造方法

*如果子类构造方法中既没有显式的调用基类构造方法,基类中又没有无参数的构造方法,

编译出错

6.3.3 对象的转型

*一个基类的引用类型变量可以指向其子类的对象

*一个基类的引用不可以访问其子类对象新增的成员

*可以使用 instanceof 关键字来判断一个引用类型变量所指向的对象是否是制定的类型*子类的对象可以当作基类的对象来使用称作向上转型,反之称为向下转型

*子类可以当成父类来使用,无需显示转换

*父类引用转换为子类引用要进行强制转换

*注意:不兼容的类型之间不能进行相互转换(只有具有直接或间接父子关系的类才是兼容的类型),否则编译时会报错

*注意:兼容类型之间的转换要看对象的实际类型,因此向下转化时最好先用instanceof来判断是否是某个类型,在转换,以免报报错

6.4.4 多态:也称运行时绑定:一般是指父类的引用指向子类对象,通过父类的引用调用被子类重写的方法,这个时候执行的是子类的方法

*一句话总结多态:对象实际是什么类型就调用什么类型的方法

*多态成立的条件:1,要有继承。2,要有重写。3,必须有父类引用指向子类对象。

6.2 抽象类:用abstract修饰的类称为抽象类(抽象的本意是不具体)

1.抽象方法不能有方法体

2.抽象类不能被实例化。

3.含有抽象方法的类必须被声明为抽象类,

4.子类继承抽象类,必须被重写父类的抽象方法,否则本身也必须被声明为抽象类

5.抽象类中的方法和属性没有其他规则来约束,抽象类中没有抽象的方法是可以的,抽象类中可以有非抽象的方法和属性

6.3 static :静态关键字

6.3.1 static属性:在类中,用static申明的成员变量叫静态变量,他为该类的公用变量,在第一使用时被初始化,对于该类的所有对象来说,static成员变量只有一份

6.3.2 static方法:用static声明的方法为静态方法,在调用该方法时,不会将对象的引用传递给它,所以static方法中不可以访问非static的成员。

*静态方法中不能访问非静态成员

*静态成员方法没有this引用

*可以通过类名(不需要实例化)或对象引用来访问静态成员

6.4 final关键字:final表示最终的意思

*final的变量的值不能够被改变

*final的成员变量

*final的局部变量(形参)

*final的方法不能够被重写

*final的类不能够被继承

6.5 接口:interface

1.使用interface定义一个接口,使用implements实现一个接口

2.接口中的属性只能为public static final类型(静态常量)

3.接口中的方法只能为public abstract类型

4.一个类可以实现多个接口,但只能继承一个类

5.接口也可以继承接口

7. 异常处理

java的异常处理机制

异常的关键字Exception

try,catch,finally,throw,throws关键字

7.1 什么是异常,为什么要引入异常

*java程序运行时出错,java就抛出异常,程序立即终止(也可以说程序崩溃)

*java将错误信息封装在异常对象里抛出

*学会查看异常的信息:异常的名字,异常的信息,程序抛异常的位置

*java引入异常处理机制,是防止程序出错崩溃

7.2 java的异常的分类

*java的抛出的错误用异常类来表示,java拥有一个异常体系(有许多异常类,并且相互之间具有关系)

*java里面的所有异常都是Throwable的子类

*java虚拟机的异常是Error的子类,一般不需进行处理(因为没法进行处理)

*除Error之外还有Exception,Exception分为两类:RuntimeException(运行时异常),被检查异常(除了RuntimeException都是被检查异常)

*RuntimeException(运行时异常,可以不捕获或声明抛出,编译不会报错,一般是控制不当造成的),可检查异常(必须捕获或声明抛出,这类异常通常需要检测并处理,一般使用资源时造成的)

*几个常见的异常:NullPointerException(空指针),IndexOutOfBoundsException(索引越界),SQLException(数据库异常),IOException(文件异常)

7.3 异常的处理方式

*使用try,catch,finally进行处理

*不处理,使用throws,throw交给别人来处理

7.4 try,catch,finally中程序的运行过程

*尝试执行try里面的语句

*一次运行当中最多执行一个catch块,如果没有抛出异常,catch块不执行

*finally总会执行,不管有没有抛出异常

*如果try块里面有return语句,finally也会执行

7.5 区分RuntimeException与被检查异常

*RuntimeException不需要捕获或声明抛出(但是如果你捕获或声明抛出也不会有错)*被检查异常必须要捕获或者声明抛出

8. 数组

数组是引用类型,有长度length的属性

声明,创建,赋值

*数组声明时要指定数组元素的类型,数组的维度,不需要指定数组的长度,如:int[] a;(a 是引用)

*数组的创建必须new关键字,并且必须给出数组的长度;new int[5]

*如果数组的类型是引用类型的数组,数组里面保存的是引用,而不是对象本身

New int[] { 1,3,4,5}

{1,4,5,6}

数组的常用操作类

Arrays提供了数组的常用操作的方法(这些方法都是静态的)

*排序:sort

*返回数组的字符串表示:ToString

二维数组

*二维数组的内存分析

*数组的拷贝使用System.arrayCopy方法

9. 常用类

常用类:lang包不需要导入,其他的包都需要

1.Object:所有类的根类

*对象的标识:hashCode()

*对象的信息:toString(),默认情况下返回对象类型@地址信息

*对象是否一样:equals,默认情况下根据地址比较相等。==比较的是对象的地址,而equals 在语义上提供相等的含义

*重写equals与toString方法,参照Money类

2.String:不可变字符串,类,继承Object

*String重写toString,返回字符串的类容。重写了equals根据字符串的内容进行比较*字符串常量"1234"与new String("1234")。常量只有一个,new String()每new一次就一个新的对像\

*字符串的不变性,字符串一旦创建,内容不能改变

*字符串的常用操作

*字符串的长度:length

*搜索一个字符串:indexOf()

*字符串的字串:substring(3,8)

*取得指定位置的字符:charAt(8);

*判断字符串以什么开头(结尾):startsWith(),endWith()

*改变字符串的大小写,toUpperCase(),toLowerCase()

*去掉字符串两边的空格:trim()

*替换字符串里面的某些内容:replace("")

*分割字符串:

StringBuffer:字符串缓冲,可变字符串,提供对字符串进行更改的方法(其他的方法基本与String类似)

*从StringBuffer得到String

*追加 append("abc");

*在字符串中间插入insert(3,"插入的字符串')

*删除字符串 delete(3,6);//不包括6

包装类:提供与字符串之间的转换。Integer是int类型的包装类

Math类:提供数学上的常用操作,注意:里面的方法都是静态的

Random:随即类,产生随机数,另外Math.random()也能产生0~1之间的随机数

日期:Date,SimpleDateFormat(日期格式化) ,日历Calendar

获得控制台输入:

*Scanner sc = new Scanner(System.in);

*String str = sc.next();

10. 集合框架

集合框架:概念上分为:Set(数学集合),List(列表),Map(字典)

1.Collection接口,Iterator接口

*Set,List继承Collection,采用Iterator进行迭代(参考testCollection)

2.Set:元素不能重复,没有顺序

*HashSet:根据hashCode判断对象是否重复(重写equals和hashCode)

*TreeSet:里面的元素按顺序排列(元素必须实现Comparable接口)

2.List:元素能够重复,有顺序即索引位置,在Collection的基础上提供了按照索引位置进行操作的方法

*ArrayList:内部使用数组实现list

*LinkedList:在List的基础上提供了对首,尾元素进行操作的方法:入getLast(),addFirst(Object o)

*数组,AarryList,LinkeList有区别

3.map:键值对的集合,key不能重复,value可以重复

*两次put同一键,后面一个会覆盖前面一个

*遍历map的方式:先取得keySet,或者entrySet,再用Set的方式(Iterator)进行遍历

4.泛型:List list = new ArrayList

*存入的元素只能是指定类型,如:

*取出来不需要强制转换,自动是指定类型,如:

5.List的常用操作类Collections,不同于Collection,提供对List的排序,随机排列,倒序的方法

*Arrays使用在数组里面,提供对数组的常用操作,跟Collections有相似之处,

https://www.doczj.com/doc/b011702266.html,parable接口

*compareTo()

*如果需要进行排序(Collections.sort()),或者放到排序的集合里面(TreeSet,TreeMap),必须实现Comparable接口

11. JDBC

JDBC:java操作数据库的一组API(注意模仿)

1.JDBC驱动方式:

*JDBC-ODBC桥驱动(必须先建立数据源,性能比较低,不推荐使用)

*JDBC纯驱动:必须把JDBC的jar包加入到构建路径,一般使用JDBC纯驱动

2.JDBC操作数据库的流程

*使用Class.forName("")加载驱动程序

*使用DriverManager.getConnection()获得Connection(连接)\

*使用Connction 创建语句(语句有Statement,PreparedStatement)

*执行语句

*关闭Connection

3.执行数据库操作在JDBC分为两种

*更改数据库:executeUpdate(),返回所影响的数据库的行数。包括insert ,update,delete *执行查询: executeQuery(),返回结果集ResultSet。包括select

4.ResultSet的常用操作:

*ResultSet代表查询出的结果集,并且包含游标的概念

*ResultSet.getMetaData可以取得每一列的元信息:列名,列的类型,列的长度

*rs.next()使得游标往下移一行,并且返回是否还有下一行的boolean值

*rs.getXXX可以取得游标当前所指向的行里面的信息

*在只进的ResultSet里,取数据不允许倒退

*常用遍历结果集的方式:while(rs.next()) { rs.getString(1) }

5.PreparedStatement

*可以对sql语句里的占位符进行设值setXXX

*执行executeUpdate()时不需要传sql语句,因为在创建PreparedStatement的时候就指

定了sql语句

*注意PreparedStatement与Statement

6.使用事务的方式

*禁止自动提交:设置Connection.setAutoCommit(false);

*在最后手动提交:https://www.doczj.com/doc/b011702266.html,mit();

*可以在数据操作中捕获异常,一旦捕获异常,使用Connection.rollBack();

7.批处理sql

*对于一个语句来将,可以使用addBatch()添加多个sql语句

*可以使用executeBatch一次执行所有加入的sql语句

8.建议大家使用Dao这中方式访问数据库

*实体类

*实体类的DAO

9.建议大家使用DBUtil管理取得连接与关闭连接

12. 图形-布局,常用Swing组件

图形用户界面(Swing常用组件,布局管理器,事件模型,绘图)

1.AWT与Swing

*AWT是重量级的组件,Swing是轻量级别组件,Swing是从awt的基础上发展过来的

*swing依然使用awt里面的布局与事件模型

*组件:每一个界面元素都称为一个组件,如按钮,文本框

*容器的概念:可以容纳其他元素的组件,通过add()往容器里面加入组件,每一个容器都可以设置自己的布局管理器(Layout)

2.常用组件

*框架:JFrame(有一个默认的内容面板),一般来将,所有的其他组件都放在JFrame的默认面板上。通过JFrame.getContentPane()获得默认内容面板

*面板:JPanel

*标签:JLabel

*文本输入框:JTextField

*文本域(多行文本):JTextArea

*单选按钮:JRadioButton

*复选框:JCheckBox

*下拉列表:JComboBox

*按钮:JButton

3。布局管理器(流布局Flowlayout,边框布局 BorderLayout,网格布局GridLayout)*使用setLayout(new FlowLayout())方法设置容器的布局管理器

*Flowlayout:当拖动界面的时候,元素的大小不会改变,仅改变元素的位置,可以指定居中对齐,左对齐,右对齐等对齐方式

*BorderLayout:将界面分为东西南北中五部分.:元素大小会发生改变,但是相对位置不变。除中间区域(自动填充)之外,区域里面不加组件,默认大小为0.如果往区域里加入多个组件,只显示最后添加的组件。

*GridLayout:每个网格的大小相等,位置不发生改变,大小随容器大小变化而变化

13. 图形-事件处理,绘图

图形用户界面

1.内部类:在一个类的里面再定义一个类称为内部类

*内部类可以访问外部类的所有的成员变量与成员方法

*如果想在外部实例化内部类,必须使用全名:外部类.内部类

2.事件模型:

*java事件采用委托模型(授权模型),即事件源本身不处理事件,交给事件监听器来处理,因此需要把事件监听器绑定到事件源里面

*事件源,事件,事件监听器。事件有许多种,不同的事件使用不同监听器来处理

*事件触发后,系统自动调用事件处理方法(不需要手动调用事件处理方法),并传递事件信息作为方法参数

*事件编写步骤:1.实现监听器接口(完成事件处理方法);2.实例化实现监并绑定到事件源

3.事件实现方式

*外部类

*内部类

14. 多线程

线程:

1.线程的概念

*程序里面不同的执行路径,每一个执行路径称为一个线程

*对于单cpu来讲,某一具体的时刻,只会有一个线程在运行,但是CPU的速度非常快,表面

上看起来是许多个线程并行执行

2.java中线程的创建与启动

*两种实现线程的方式:继承Thread,实现Runnable接口

*线程的启动:start.启动线程,运行线程的run方法,run方法运行完线程就结束(注意,start只在Thread里面有,start不同于run)

*注意一个Thread对象,只能一次调用start方法

*Thread与Runnable的区别:1:Runnable是接口,比Thread灵活(因为java只能单继承,可以同时实现许多接口);2.一个Runnable对象可以启动许多个线程,线程之间共享对象(Thread 不能共享对象)

3.线程的状态:new ,可运行,运行中,阻塞,死亡

4.线程的调度

*Thread.sleep,使该线程睡眠

*join:线程合并(结果类似与方法调用)

*yield:线程让出当前CPU,留给其他线程运行

*线程优先级:setPriority设置线程优先级

*后台线程:setDaemon,必须在线程运行前设置为后台线程.当所有的前台线程都结束了,后台线程自动结束

*线程可以指定名字,取得当前线程的方法Thread.currentThread();

5.线程同步

*synchronized:同一时刻,只会有一个线程执行synchronized代码块

6.线程间通讯

*wait(),notify(),notifyAll是Object类中定义的方法

*wait():使得运行该代码的线程进入对象的等待池进行等待,线程进入阻塞状态,wait的线程一直阻塞,指导其他线程调用该对象的notify方法唤醒它。

*notify():唤醒对象等待池中的一个线程,使得被唤醒的线程进入可运行状态,如果等待池中没有线程,notify什么也不做。

*notifyAll():唤醒对象等待池中的所有线程

*wait(),notify,notifyAll都必须放在同步代码块里面(Synchronized代码块).

*wait()的线程会释放对象的锁,而Thread.sleep的线程不会释放对象的锁

7.线程安全的类:多线程的环境下使用类或者调用类的方法不会造成同步问题的类称为线程安全的类

*JDK1.1以前,java的集合框架中有一些线程安全的类:如Vector(被ArrayList代替),HashTable(被HashMap代替)

15. IO

16. 网络

17. 类与对象的生命周期

18. 补充知识点

代码书写规范

代码跟踪调试

有时候需要知道程序的具体执行过程,这时候跟踪程序很有用跟踪调试程序

*设置断点

*调试,跟踪程序的运行

*程序的运行过程,变量的值

史上最全Java基础知识点归纳

史上最全Java基础知识点归纳 写这篇文章的目的是想总结一下自己这么多年来使用Java的一些心得体会,主要是和一些Java基础知识点相关的,所以也希望能分享给刚刚入门的Java 程序员和打算入Java开发这个行当的准新手们,希望可以给大家一些经验,能让大家更好学习和使用Java。 这次介绍的主要内容是和J2SE相关的部分,另外,会在以后再介绍些J2EE 相关的、和Java中各个框架相关的内容。 经过这么多年的Java开发,以及结合平时面试Java开发者的一些经验,我觉得对于J2SE方面主要就是要掌握以下的一些内容。 1.JVM相关(包括了各个版本的特性) 对于刚刚接触Java的人来说,JVM相关的知识不一定需要理解很深,对此里面的概念有一些简单的了解即可。不过对于一个有着3年以上Java经验的资

深开发者来说,不会JVM几乎是不可接受的。 JVM作为Java运行的基础,很难相信对于JVM一点都不了解的人可以把Java语言吃得很透。我在面试有超过3年Java经验的开发者的时候,JVM几乎就是一个必问的问题了。当然JVM不是唯一决定技术能力好坏的面试问题,但是可以佐证Java开发能力的高低。 在JVM这个大类中,我认为需要掌握的知识有: JVM内存模型和结构 GC原理,性能调优 调优:Thread Dump,分析内存结构 class二进制字节码结构,class loader体系,class加载过程,实例创建过程 方法执行过程 Java各个大版本更新提供的新特性(需要简单了解) 2.Java的运行(基础必备) 这条可能出看很简单,Java程序的运行谁不会呢?不过很多时候,我们只是单纯通过IDE去执行Java程序,底层IDE又是如何执行Java程序呢?很多人并不了解。

java知识点总结

https://www.doczj.com/doc/b011702266.html,ng.Object 类,是所有类的根父类! 2.Object类仅有一个空参的构造器public Object(){ } 3.关于方法: ①equals(Object obj) public boolean equals(Object obj) { return (this == obj); } // == // 1.基本数据类型:根据基本数据类型的值判断是否相等。相等返回true,反之返回false // 注:两端数据类型可以不同,在不同的情况下,也可以返回true。 // 2.引用数据类型:比较引用类型变量的地址值是否相等。 //equals(): >①只能处理引用类型变量②在Object类,发现equals()仍然比较的两个引用变量的地址值是否相等 >像String 包装类File类Date类这些重写Object类的equals()方法,比较是两个对象的 //"实体内容"是否完全相同。 >若我们自定义一个类,希望比较两个对象的属性值都相同的情况下返回true的话,就需要重写Object类的 equals(Object obj)方法 ②toString()方法

当我们输出一个对象的引用时,会调用toString()方法。 1.public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); } 当我们没有重写Object类的toString()方法时,打印的就是对象所在的类,以及对象实体在堆空间的位置 2.一般我们需要重写Object类的toString()方法,将此对象的各个属性值返回。 3.像String类、Date、File类、包装类都重写了toString()方法。 1. String类:不可变的字符序列(如:String str = "atguigu"; str += "javaEE") 1.关注于String常用的方法! 2.String类与基本数据类型、包装类;与字符数组、字节数组; * 1.字符串与基本数据类型、包装类之间转换 * ①字符串--->基本数据类型、包装类:调用相应的包装类的parseXxx(String str); * ①基本数据类型、包装类--->字符串:调用字符串的重载的valueOf()方法 *

java基础知识点总结

Created by AIwen on 2017/5/14. java是面向对象的程序设计语言;类可被认为是一种自定义的数据类型,可以使用类来定义变量,所有使用类定义的变量都是引用变量,它们将会引用到类的对象。类用于描述客观世界里某一类对象的共同特征,而对象则是类的具体存在,java程序使用类的构造器来创建该类的对象。 java也支持面向对象的三大特征:封装、继承、和多态。java提供了private、protected、和public三个访问控制修饰符来实现良好的封装,提供了extends关键字让子类继承父类,子类继承父类就可以继承到父类的成员变量和和方法,如果访问控制允许,子类实例可以直接调用父类里定义的方法。继承是实现类复用的重要手段。使用继承关系来实现复用时,子类对象可以直接赋给父类变量,这个变量具有多态性。 面向对象的程序设计过程中有两个重要的概念:类(Class)和对象(object,也被称为实例,instance)。类可以包含三种最常见的成员:构造器、成员变量、和方法。 构造器用于构造该类的实例,java语言通过new关键字类调用构造器,从而返回该类的实例。构造器是一个类创建对象的根本途径,如果一个类没有构造器,这个类通常无法创建实例。因此java语言提供了一个功能:如果程序员没有为一个类编写构造器,则系统会为该类提供一个默认的构造器,这个构造器总是没有参数的。一旦程序员为一个类提供了构造器,系统将不再为该类提供构造器。 构造器用于对类实例进行初始化操作,构造器支持重载,如果多个重载的构造器里包含了相同的初始化代码,则可以把这些初始化代码放置在普通初始化块里完成,初始化块总在构造器执行之前被调用。静态初始化块代码用于初始化类,在类初始化阶段被执行。如果继承树里某一个类需要被初始化时,系统将会同时初始化该类的所有父类。 构造器修饰符:可以是public、protected、private其中之一,或者省略构造器名:构造器名必须和类名相同。 注意:构造器既不能定义返回值类型,也不能使用void声明构造器没有返回值。如果为构造器定义了返回值类型,或使用void声明构造器没有返回值,编译时不会出错,但java会把这个所谓的构造器当成方法来处理——它就不再是构造器。 实际上类的构造器是有返回值的,当使用new关键字来调用构造器时,构造器返回该类的实例,可以把这个类的实例当成构造器的返回值。因此构造器的返回值类型总是当前类,无须定义返回值类型。不要在构造器里显式的使用return来返回当前类的对象,因为构造器的返回值是隐式的。 java类名必须是由一个或多个有意义的单词连缀而成的,每个单词首字母大写,其他字母全部小写,单词与单词之间不要使用任何分隔符。 成员变量: 成员变量的修饰符:public、protected、private、static、final前三个只能出现一个再和后面的修饰符组合起来修饰成员变量,也可省略。 成员变量:由一个或者多个有意义的单词连缀而成,第一个单词首字母小写,后面每个单词首字母大写,其他字母全部小写,单词与单词之间不要使用任何分隔符。 类型:可以是java语言允许的任何数据类型,包括基本类型和引用类型。 成员方法: 方法修饰符:public、protected、private、static、final、abstract,前三个只能出现一个,static和final最多只能出现其中的一个,和abstract组合起来使用。也可省略。 返回值类型:可以是java语言的允许的任何数据类型,包括基本类型和引用类型。 方法名:和成员变量的方法命名规则相同,通常建议方法名以英文动词开头。 方法体里多条可执行语句之间有严格的执行顺序,排在方法体前面的语句总先执行,排在方法体后面的语句总是后执行。 static是一个特殊的关键字,它可用于修饰方法、成员变量等成员。static修饰的成员表明它属于这个类本身,而

《Java编程基础知识点汇总及习题集》--答案

目录 第一章 Java入门 (2) 第二章 Java基础 (5) 第三章条件转移 (16) 第四章循环语句 (22) 第五章方法 (28) 第六章数组 (35) 第七章面向对象 (44) 第八章异常 (65)

第一章Java入门 知识点汇总 1、JAVA 三大体系 ?Java SE:(J2SE,Java2 Platform Standard Edition,标准版),三个平台中最核心 的部分,包含Java最核心的类库。 ?JavaEE:(J2EE,Java 2 Platform, Enterprise Edition,企业版),开发、装 配、部署企业级应用,包含Servlet、JSP、 JavaBean、JDBC、EJB、Web Service等。 ?Java ME:(J2ME,Java 2 Platform Micro Edition,微型版),用于小型电子设备 上的软件开发。 2、JDK,JRE,JVM的作用及关系 作用 ★JVM:保证Java语言跨平台 ★JRE:Java程序的运行环境 ★JDK:Java程序的开发环境 关系 ★JDK:JRE+工具 ★JRE:JVM+类库 3、JDK环境变量配置 ?path环境变量:存放可执行文件的存 放路径,路径之间用逗号隔开 ?classpath环境变量:类的运行路径, JVM在运行时通过classpath加载需要 的类 4、重点掌握两个程序 ?javac.exe:Java编译器工具,可以将编 写好的Java文件(.java)编译成Java 字节码文件(.class); ?java.exe:Java运行工具,启动Java虚 拟机进程,运行编译器生成的字节码 文件(.class) 5、一切程序运行的入口 public static void main(String args []){ System.out.println(“Hello World!”); } 课堂笔记

java面向对象知识点总结

j a v a面向对象知识点总 结 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998

1 类和对象 类: 类是用来描述一类事物的共性内容的, 类是抽象的; 创建类,如何描述 属性功能 用变量来描述属性 用方法来描述功能 对象: 就是现实中具体的事物,对象是具体的; 创建对象 类名对象名 = new 类名(); 如何通过对象访问类中属性和方法呢 对象名.变量名 对象名.方法名(); 只要是new的对象,就是新创建的,就会在内存中开辟一段单独的空间匿名对象 创建的对象没有赋值给具体的变量; 所以给匿名对象的属性赋值是没有任何意义的; 匿名对象使用场景

1 调用方法 2 作为参数传递 3 添加进容器中 This 关键字 This. 类中的普通方法访问到的成员前边都有this.这个关键字This. 就代表当前对象, 普通方法, 创建对象调方法, 谁调用就代表谁 This(); 可以用来在构造函数中调用本类与之相对应的构造函数使用注意事项: 1 this() 只能是构造函数的第一条执行语句 2 this() 不能在构造函数之间相互调用 3 this() 不能调用自己 构造函数(方法) 构造函数的作用 用来给对象进行初始话的(初始化就是指给对象的各个属性赋值) 构造函数何时执行 对象一创建就会调用与之相对应的构造函数

构造函数语法 修饰符没有返回值类型类名(参数列表){ 具体执行的代码 } 构造函数自动添加 当一个类中我们没有明确指定构造函数的话,jvm会自动帮我们添加一个空参数的构造, 如果我们指定了,就不添加了 构造函数和普通函数的区别 执行时机不同 对象一创建就会调用与之相对应的构造函数 普通函数只有被调用才会执行 return 1 就是用来在方法中返回具体结果(结果类型必须和方法的返回值类型一致) 2 即便方法的返回值类型是void,方法中也可以出现 return; 3 构造函数中也可以有return关键字 成员变量和局部变量 1 作用范围不同, 成员变量是定义在类中的,在整个类中都起作用 局部变量是定义在方法中的,在所在代码块起作用

JAVA技术--Java基础知识常见考试题JAVA技术.doc

一、单选题 1.对类:(B) public class Test( //...do something } 下面那个正确地定义了类Test的构造函数。 A)public void Test() () B)publicTest()(} C ) public static Test() (} D) publicTest(); 2.下面哪个函数是public void example()(...)的重载函数。(A) A)public void example( float f)(...) B)public int example() (...) C)public void example2()(...} D)public int example_overLoad ()(...) 3.下面的代码段中,执行之后i和j的值是_C_。 int i = 1; intj; j = i++; A)1, 1 B) 1,2 C) 2, 1 D) 2,2 4.以下for循环的执行次数是_B o for(int x=0,y=0;(y !=0)&&(x<4) ;x++); A)无限次B) 一次也不执行 C)执行4次D)执行3次 5.下面程序的输出结果是—C o public class People( String name; int id; public People( String str, int n )( name = str; id = n; } public String toString(){ return id + " :” + name; } public String print()(

《Java编程基础知识点汇总及习题集》--答案

目录 第一章Java入门2? 第二章 Java基础5? 第三章条件转移1?4 第四章循环语句20? 第五章方法 ............................................... 26 第六章数组33? 第七章面向对象........................................... 42第八章异常63? ? 第一章Java入门 知识点汇总 1、JAVA 三大体系 ?Java SE:(J2SE,Java2 Platform Standard Edition,标准版),三个 平台中最核心的部分,包含Java最核 心的类库。?JavaEE:(J2EE,Java 2 Platform, EnterpriseEdition,企业版), 开发、装配、部署企业级应用,包含 Servlet、JSP、JavaBean、JDB C、EJB、Web Service等。 ?Java ME:(J2ME,Java 2 Platfor mMicro Edition,微型版),用于 小型电子设备上的软件开发。

2、JDK,JRE,JVM的作用及关系 作用 ★JVM:保证Java语言跨平台 ★JRE:Java程序的运行环境 ★JDK:Java程序的开发环境 关系 ★JDK:JRE+工具 ★JRE:JVM+类库 3、JDK环境变量配置 ?path环境变量:存放可执行文件的存 放路径,路径之间用逗号隔开 ?classpath环境变量:类的运行路径,J VM在运行时通过classpath加载需 要的类 4、重点掌握两个程序 ?javac.exe:Java编译器工具,可以将 编写好的Java文件(.java)编译成 Java字节码文件(.class); ?java.exe:Java运行工具,启动Java 虚拟机进程,运行编译器生成的字节 码文件(.class) 5、一切程序运行的入口 publicstatic voidmain(String args []){ System.out.println(“Hel lo World!”); } 课堂笔记 练习题 一、填空题 1、Java的三个技术平台分别是(J2SE )、(J2EE)、(J2ME)。 2、Sun公司针对领域不同,提供了三个Java版本,其中对于个人计算机程序开发的是( J2SE ), 对于企业开发应用的是(J2EE),对于嵌入式设备应用开发的是( J2ME )。 (classpath )。 3、建立Java开发环境,安装JDK,一般需要设置环境变量(path)、 4、编写一个Java源程序,其文件名为Test.java,则编译该源程序的命令为(javac ),运行 该程序的命令为( java),生成文档注释的命令为( javadoc)。 5、Java程序的运行环境简称之为( JRE)。

java各知识点详细总结(毕向东笔记整理)

Java基础知识总结 写代码: 1,明确需求。我要做什么? 2,分析思路。我要怎么做?1,2,3。 3,确定步骤。每一个思路部分用到哪些语句,方法,和对象。4,代码实现。用具体的java语言代码把思路体现出来。 学习新技术的四点: 1,该技术是什么? 2,该技术有什么特点(使用注意): 3,该技术怎么使用。demo 4,该技术什么时候用?test。 ----------------------------------------------------------------------------------------------- 一:java概述: 1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒、PDA等的微处理器; 1994年将Oak语言更名为Java; Java的三种技术架构: JAVAEE:Java Platform Enterprise Edition,开发企业环境下的应用程序,主要针对web程序开发; JAVASE:Java Platform Standard Edition,完成桌面应用程序的开发,是其它两者的基础;

JAVAME:Java Platform Micro Edition,开发电子消费产品和嵌入式设备,如手机中的程序; 1,JDK:Java Development Kit,java的开发和运行环境,java 的开发工具和jre。 2,JRE:Java Runtime Environment,java程序的运行环境,java 运行的所需的类库+JVM(java虚拟机)。 3,配置环境变量:让java jdk\bin目录下的工具,可以在任意目录下运行,原因是,将该工具所在目录告诉了系统,当使用该工具时,由系统帮我们去找指定的目录。 环境变量的配置: 1):永久配置方式:JAVA_HOME=%安装路径%\Java\jdk path=%JAVA_HOME%\bin 2):临时配置方式:set path=%path%;C:\Program Files\Java\jdk\bin 特点:系统默认先去当前路径下找要执行的程序,如果没有,再去path中设置的路径下找。 classpath的配置: 1):永久配置方式:classpath=.;c:\;e:\ 2):临时配置方式:set classpath=.;c:\;e:\ 注意:在定义classpath环境变量时,需要注意的情况如果没有定义环境变量classpath,java启动jvm后,会在当前目录下查找要运行的类文件;

java期末考试知识点总结

java知识点总结 应同学要求,特意写了一个知识点总结,因比较匆忙,可能归纳不是很准确,重点是面向对象的部分。 java有三个版本:JAVA SE 标准版\JAVA ME移动版\JAVA EE企业版 java常用命令:java, javac, appletview java程序文件名:.java, .class java的两类程序:applet, application; 特点,区别,这两类程序如何运行 java的主方法,主类,共有类;其特征 java的数据类型,注意与C++的不同,如字符型,引用型,初值 java与C++的不同之处,期中已总结 java标记符的命名规则 1)标识符有大小写字母、下划线、数字和$符号组成。 2)开头可以是大小写字母,下划线,和$符号(不能用数字开头) 3)标识符长度没有限制 4)标识符不能使关键字和保留字 面向对象的四大特征 抽象、封装、继承、多态 封装,类、对象,类与对象的关系,创建对象,对象实例变量 构造函数,默认构造函数,派生类的构造函数,构造函数的作用,初始化的顺序,构造方法的重载 构造函数:创建对象的同时将调用这个对象的构造函数完成对象的初始化工作。把若干个赋初值语句组合成一个方法在创建对象时一次性同时执行,这个方法就是构造函数。是与类同名的方法,创建对象的语句用new算符开辟了新建对象的内存空间之后,将调用构造函数初始化这个新建对象。 构造函数是类的特殊方法: 构造函数的方法名与类名相同。 构造函数没有返回类型。 构造函数的主要作用是完成对类对象的初始化工作。 构造函数一般不能由编程人员显式地直接调用。 在创建一个类的新对象的同时,系统会自动调用该类的构造函数为新对象初始化。 类的修饰符:public类VS 默认; abstract类; final类; 1)类的访问控制符只有一个:public,即公共的。公共类表明它可以被所有其他类访问和引用。 若一个类没有访问控制符,说明它有默认访问控制特性,规定该类智能被同一个包中的类访问引用(包访问控制)。 2)abstract类:用abstract修饰符修饰的类被称为抽象类,抽象类是没有具体对象的概念类,抽象类是它所有子类的公共属性集合,用抽象类可以充分利用这些公共属性来提高开发和维护效率。 3)final类:被final修饰符修饰限定的,说明这个类不能再有子类。所以abstract与final 不能同时修饰一个类。 域和方法的定义 1)域:定义一个类时,需要定义一组称之为“域”或“属性”的变量,保存类或对象的数据。

Java基础阶段复习题2(附答案)

复习题2 如有雷同,纯属巧合! 1.下列哪一种叙述是正确的() A. abstract修饰符可修饰字段、方法和类 B.抽象方法的body部分必须用一对大括号{ }包住 C.声明抽象方法,大括号可有可无 D.声明抽象方法不可写出大括号 2.下列说法正确的有() A. class中的constructor不可省略 B. constructor必须与class同名,但方法不能与class同名 C. constructor在一个对象被new时执行 D.一个class只能定义一个constructor 3.以下哪个表达式是不合法的() A、String x=”Hello”; int y=9; x+=y; B、String x=”Hello”; int y=9; if(x= =y) { } C、String x=”Hello”; int y=9; x=x+y; D、String x=null; int y=(x!=null)&&(x.length()>0) ? x.length() : 0 4.下列关于修饰符混用的说法,错误的是() A.abstract不能与final并列修饰同一个类 B.abstract类中不可以有private的成员 C.abstract方法必须在abstract类中 D.static方法中能处理非static的属性 5.()修饰符允许对类成员的访问不依赖于该类的任何对象 A、abstract B、static C、return D、public 6.关于被私有访问控制符private修饰的成员变量,以下说法正确的是() A.可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类 B.可以被两种类访问和引用:该类本身、该类的所有子类 C.只能被该类自身所访问和修改 D.只能被同一个包中的类访问

java基础刷题知识点总结

基础 1.object类的方法有哪些 clone() protect 创建并返回一个对象的副本 equals()用来比较某个对象是否与调用此方法的对象相等 finalize() protect getClass() 返回一个对象的运行时类 hashCode()返回一个对象的hash值 notify()唤醒在此对象监听器上等待的单个线程。如果有多个,则随机唤醒一个 notifyAll()唤醒在此对象监听器上等待的所有线程 registerNatives() 本地私有方法,在类初始化是会调用此方法 toString() 返回当前对象的字符串表示 wait()使当前线程处于等待直到其他线程调用这个对象的notify或notifyAll方法或者超过指定的时间量 2.接口和抽象类的区别 1.首先描述接口和抽象类的特性 抽象类:是子类通用特性的集合 接口:是抽象方法的集合l 从某种意义上说抽象类包含了接口的所有功能。但是通过实现接口可以实现多继承

什么时候用抽象类和接口 1.如果一些方法必须提供默认的实现,就必须用抽象类,比如在dao层,每个类都有增删查改这几个操作,我们可以把这些操作写在抽象类里,并让抽象类提供默认的实现。 否则的话用接口 2.假如要实现多继承,则必须要用接口,java不支持多继承但是可以通过实现多个接口来解决 3.如果基本功能在不断改变,那么就用抽象类。如果不断改变基本功能并且使用接口,子类就必须不停的更改 03.抽象类是否有构造方法 抽象类有构造方法只是抽象类不能够实例化 4.Final finally finalize()方法的区别 5.Sleep()和wait()的区别 ①这两个方法来自不同的类分别是,sleep来自Thread类,和wait来自Object类。sleep是Thread的静态类方法,谁调用的谁去睡觉,即使在a线程里调用b的sleep方法,实际上还是a去睡觉,要让b线程睡觉要在b的代码中调用sleep。 ②锁: 最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法。 sleep不出让系统资源;wait是进入线程等待池等待,出让系统资源,其他线程可以占用CPU。一般wait不会加时间限制,因为如果wait线程的运行资源不够,再出来也没用,要等待其他线程调用notify/notifyAll唤醒等待池中的所有线程,才会进入就绪队列等待OS 分配系统资源。sleep(milliseconds)可以用时间指定使它自动唤醒过来,如果时间不到只能调用interrupt()强行打断。 Thread.sleep(0)的作用是“触发操作系统立刻重新进行一次CPU竞争”。 ③使用范围:wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,配合synchronized实现等待通信机制,而sleep可以在任何地方使用。 synchronized(x){ x.notify() //或者wait() }

javaweb知识点总结

javaweb知识点总结 篇一:javaweb期末复习知识点整理 1、 Web应用概述 1. URL与URI URL: 统一资源定位器 URI:统一资源定位符 2. 常见HTML标签 3. 表单的处理 4. 静态文档与动态文档的概念:静态文档是一种以文件的形式存放在服务器端的文档,客户发出对该文档的请求,服务器返回这个文档。动态文档是指文档的内容可根据需要动态生成,又可分为服务器端动态文档和客户端动态文档技术。 5. Servlet概念:服务器端小程序,是使用ServletAPI 以及相关类编写的java程序,主要用来扩展web服务器的功能。 6. 处理404错误:查看给定的路径名是否正确,查看Servlet类文件是否在classes目录下,查看文件内容是否正确,查看tomcat是否启动 2、 Servlet技术模型 1. Servlet的API:包,包 Servlet接口及方法 :

1) public void init(ServletConfig config):完成Servlet初始化并准备提供服务。容器传给该方法一个ServletConfig类型的参数。 2)public void service(ServletRequest req,ServletResponse res)throw ServletException,IOException:对每个客户请求容器调用一次该方法,它允许Servlet为请求提供响应。 3) public void destroy()该方法由容器调用,指示Servlet清除本身,释放请求的资源并准备结束服务。 4) public ServletConfig getServletConfig()返回关于Servlet的配置信息,如传递给init()方法的参数。 5) public String getServletInfo()返回关于Servlet 的信息,如作者,版本及版权信息。 ServleConfig接口作用及方法 HttpServlet类 :新的service方法,doGet,doPost HttpServletRequest接口及常用方法 HttpServletResponse接口及常用方法 2. Servlet的开发步骤 编写一个Servlet类 编译 部署 (1)在tomcat的虚拟目录下,创建Web目录

java基础知识练习题

Java基础测试题 一、选择题(每题2分) 1、在JAVA编程中,Java编译器会将java程序转换为()。 A. 字节码; B. 可执行代码; C. 机器代码; D. 以上所有选项都不正确。 2、下列那些不是合法的标识符?() A. Tel_num B. 8ABc C. Emp_1 D. b123.6 E. NULL F. Hello World 3、以下字符常量中不合法的是( )。 A. '|' B. '\'' C."\n" D.'我' 4、下列语句编译没有错误的是:() A. float a=1.5; B.byte a=129; C.byte a=5; D.byte a=(byte)200; 5、java中int数据类型在内存中表示为() A. 2个字节 B.4个字节 C. 由程序员指定 D. 以上都不正确 6、下列程序段执行后t5的结果是( )。 int t1 = 9, t2 = 11, t3=8; int t4,t5; t4 = t1 > t2 ? t1 : t2+ t1; t5 = t4 > t3 ? t4 : t3; A. 8 B.20 C.11 D.9 7、若有定义int a = 2;则执行完语句a += a -= a * a; 后,a的值是( )。 A. 0 B. 4 C. 8 D.–4 8、设 a, b, c, d 均为 int 型的变量,并已赋值,下列表达式的结果属于非逻辑值的是( ) A. a!=b & c%d < a B.a++ = =a+b+c+d C.++a*b--+d D.a+b>=c+d 9、以下代码段执行后的输出结果为() int x=3; int y=10; System.out.println(y%x); A.0 B.1 C.2 D.3 10、下列语句序列执行后,k 的值是( )。 int i=10, j=18, k=30; switch( j - i ) { case 8 : k++; case 9 : k+=2; case 10: k+=3; default : k/=j; } A. 31 B. 32 C. 2 D.33 11、假定有变量定义: int k=7,x=12; 则能使值为3的表达式是()。 A. x%=(k%=5) B.x%=(k-k%5) C. x%=k-k%5 D. (x%=k)-(k%=5) 12、设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是()。 A. 把x和y按从大到小排列 B. 把x和y按从小到大排列

Java期末知识点整理总结

Java期末知识点整理总结 计科2班苏锐师编号47 学号201330551464 第一章 Java语言概述 1. Java语言发展历史和现状及前景 2. Java语言的特点: 简单、面向对象、分布式、健壮性、结构中立、 安全性、可移植、解释的、高性能、多线程、多态性 3. Java虚拟机概念(JVM),Java程序的执行过程 4. Java应用程序分类:Application和Applet 5. Java程序的开发环境:JDK,IDE 第二章 Java数据类型及其运算 1. 标识符与保留字 1.2 标识符命名语法规则与Java推荐的标识符命名规则 1.3 Java中的关键字 2. 数据类型byte, short, int long, char, float, double, boolean 注意点:Java中所有数据类型是确定的,与平台无关,没有sizeof操作,其中特别注意char 类型是2字节Unicode编码,与C++ 不同;知道基本类型都有对应的默认值。 整型数的十进制、八进制、十六进制值的表示。 实型数的十进制、十六进制与科学计数法表示,注意实型常量默认类型为double型。 3. 运算符与表达式算术运算符: + - * / % ++ -- 关系运算符:> >= < <= == != 逻辑运算符:&& || !& | 注意短路计算与非短路计算的差别 位运算符: >> << >>> & | ^ ~ 要认识异或(^)与按位取反(~)运算符 赋值运算符: += -= *= /= %= &= |= ^= <<= >>= >>>= 要注意赋值运算符中包含了强制转换: 若: int k = 1; k += 44.232D; 则相当于: k = (int) ( k + 44.232D); 条件运算符:exp ?stat1 :stat2 要注意stat1与stat2要求类型相兼容且不能为void类型。运算符的优先级:算术运算 > 关系运算> 逻辑运算

java基础知识详细整理(图文并茂深入浅出)

JSE第一部分 分享者:张振羽 2017.6.30

1.什么是 JDK API (1) Application Programming Interface ,应用程序编程接口 (2) 是一些预先定义的函数,开发人员可提供直接调用的功能。 2.JDK包结构 便于维护,按照功能划分,不同功能的累划分在不同功能的包中,常用的包如下表: 3.字符串的基本操作 3.1 String 及其API

3.1.1 String (1) String是不可变对象 (2) https://www.doczj.com/doc/b011702266.html,ng.String使用了final修饰,不能被继承。 (3)字符串一旦被初始化,就不可以被改变,存放在方法区中的常量池中 (4) 任何一个字符对应2个字节的长度,1个字节 = 8位二进制。 3.1.2 String s=new String (“abc”) (1) 众所周知,答案是:创建两个对象 (2) why?举例子: 分析步骤: a) 栈中开辟一块空间存放引用str1(地址信息); b) String池中有一块空间,存放String常量"abc"; c) 引用str1指向池中String常量"abc"; d) str1所指代的地址即常量"abc"所在地址,输出为true; 结论:创建了一个引用对象str1

分析步骤: 1) 栈中开辟一块空间存放引用str3; 2) 堆中开辟一块空间存放一个新建的String对象"abc"; 3) 引用str3指向堆中的新建的String对象"abc"; 4) str3所指代的对象地址为堆中地址,而常量"abc"地址在池中,输出false; 3.2 StringBuilder常见API

Java基础知识整理教学教材

Java知识点总结 1环境搭建与开发 1.1 环境变量 JA V A_HOME:Java的安装目录; CLASSPATH:指定一个路径列表,用于搜索Java在编译或运行时需要用到的类(.class文件); PATH:指定一个路径列表,用于搜索可执行文件。 1.2 Java SDK应用 编译:Javac 类名.class; 运行:Java 类名; 打包:jar cf test.jar test (把当前目录下的test目录下的所有文件压缩到test.jar文件中)。 2变量与常量 Java中的常量用保留字final来实现。 变量:局部变量(local variable)、实例变量(instance variable)、类变量(class variable);任何变量在使用前都必须初始化,局部变量必须显示初始化,实例变量在类的构造方法被调用时初始化(分配默认值),类变量在类被加载时被初始化。 3标识符 3.1 命名 在Java语言中,标识符的定义规则是以字母、下划线、美元符开始,后面可以跟字母、下划线、美元符、数字。 因为Java语言使用Unicode字符集,所以对字母不仅限于英文,还可以是日文、韩文、阿拉伯文、中文等。 区分大小写,没有字数限制。

3.2 关键字 3.2.1static static方法中不能有this和super关键字(static方法不是“面向对象”的,而是“面向类”的)。 static方法中只能访问所属类的static方法和变量。 static数据成员的初始化:在第一次生成该类的对象时初始化。 3.2.2final 1)final数据 a)static final ●更加典型的定义方式是public static final; ●占用一段不能改变的存储空间; ●代表编译时常量,即在编译器就能知道其值(如果只声明为final或 者static,是在运行时才知道值)。 ●全部用大写字母命名,单词之间用下划线隔开。 b)final数据与final引用 ●final数据的值不能被改变; ●final引用是指无法将其指向一个新的对象(数组也是一种引用),对 象本身的值是可以改变的。 c)空白final(声明为final却未赋初始值) ●可以做到根据对象有所不同,又保持恒定不变的特性; ●必须保证使用前已经初始化:在定义处赋值或者在构造器中赋值。 2)final参数 ●无法在方法中更改引用所指向的对象。 3)final方法 ●禁止覆盖,防止任何继承类修改它的定义; ●private方法都是final的,因此private方法无法覆盖。 4)final类 ●不允许继承该类; ●final类中的所有方法都隐式指定为final的。

java各知识点详细总结

基础知识总结 写代码: 1,明确需求。我要做什么? 2,分析思路。我要怎么做?1,2,3。 3,确定步骤。每一个思路部分用到哪些语句,方法,和对象。 4,代码实现。用具体的语言代码把思路体现出来。 学习新技术的四点: 1,该技术是什么? 2,该技术有什么特点(使用注意): 3,该技术怎么使用。 4,该技术什么时候用?。 一:概述: 1991 年公司的等人开始开发名称为的语言,希望用于控制嵌入在有线电视交换盒、等的微处理器; 1994年将语言更名为; 的三种技术架构: :,开发企业环境下的应用程序,主要针对程序开发; :,完成桌面应用程序的开发,是其它两者的基础; :,开发电子消费产品和嵌入式设备,如手机中的程序; 1,:,的开发和运行环境,的开发工具和。 2,:,程序的运行环境,运行的所需的类库(虚拟机)。 3,配置环境变量:让\目录下的工具,可以在任意目录下运行,原因是,将该工具

所在目录告诉了系统,当使用该工具时,由系统帮我们去找指定的目录。 环境变量的配置: 1):永久配置方式:安装路径%\\ \ 2):临时配置方式::\ \\\ 特点:系统默认先去当前路径下找要执行的程序,如果没有,再去中设置的路径下找。 的配置: 1):永久配置方式::\:\ 2):临时配置方式::\:\ 注意:在定义环境变量时,需要注意的情况 如果没有定义环境变量,启动后,会在当前目录下查找要运行的类文件; 如果指定了,那么会在指定的目录下查找要运行的类文件。 还会在当前目录找吗?两种情况: 1):如果的值结尾处有分号,在具体路径中没有找到运行的类,会默认在当前目录再找一次。 2):如果的值结果出没有分号,在具体的路径中没有找到运行的类,不会再当前目录找。 一般不指定分号,如果没有在指定目录下找到要运行的类文件,就报错,这样可以调试程序。 4,命令和命令做什么事情呢? 要知道是分两部分的:一个是编译,一个是运行。 :负责的是编译的部分,当执行时,会启动的编译器程序。对指定扩展名的文件进

Java学习知识点情况总结

JAVA知识点总结 1.JAVA的特点: ○1简单易用、完全面向对象; ○2与平台无关性、可扩展性强; ○3可移植性高、支持分布式编程; ○4健壮、安全可靠并性能优异; ○5支持多线程开发技术; ○6支持动态开发。 2.JVM:Java虚拟机(JVM是Java实现跨平台的基础)。 Java的源程序(*.java)编译(命令:java+文件名.java)Java字节码(*.class编译时自动形成,与源程序名一致) 运行(命令:java+源程序的文件名)JVM(Windows、Linux) 开发工具,Javac及基础核心类 JDK 运行环境,Java及基础核心类 3.编写第一个Java程序: Java源文件扩展名为:”.java” 一个源文件中最好只有一个java类,但是可以包含多个类 public修饰的类,文件名与类名必须一致(包括大小写) 被运行的类中需要有一个方法: public static void main(String[ ] args){} 一个源文件中最多有一个public修饰的类

例如:public class Test{ public static void main(String args[]){ System.out.println(“这个编写的第一个java程序!!!”); } } 在运行程序之前先配置环境变量: path变量值为:JDK安装目录下\bin; classpath变量值为:JDK安装目录下\lib; 或 .;JDK安装目录下\lib\tools.jar 在dos命令窗口中输入以下命令进行运行: 编译命令:javac Test.java 运行命令:java Test 生成文档命令:javadoc Test.java 4.Java编程规范 A、命名规定 包:包名应该是小写的名词。 如:package shipping.objects 类:类名应该是名词,大小写混合,每个单词的首字母大写。 如:class AccountBook 接口:接口名的大小写应该与类名一样。 如:interface Account 方法:方法名应该动词,大小写混合,首字母小写。每个方法名中,以大写字母区分单词。限制使用下划线。

Java知识总结完整版

第1章 Java概述 Java语言的特特点 一种面向对象的语言;一种平台无关的语言;一种健壮的语言,吸收了C/C++的优点,但去掉了其影响程序健壮性的部分(如:指针、内存的申请与释放等) Java的两种核心机制 Java虚拟机(Java Virtual Machine) 垃圾回收机制(Garbage Collection) 源程序(*.java文件)→Java编译器→字节码(*.class文件)→类装载器→字节码校验器→解释器→操作系统平台 一次编译,随处运行 Java是一种解释型语言 JDK(Java Development Kit)软件开发工具包 JRE(Java Runtime Environment)运行时环境 开发需要JDK;用户只需JRE PATH:WINDOWS系统执行命令时要搜寻的路径(如javac.exe,java.exe)CLASSPATH:Java在编译和运行时要找的class所在路径(“.”代表当前路径) java:运行java程序 javac:编译java程序

java –version 一个源文件最多只能有一个public类,其他类数量不限,源文件名必须与public 类名一致 Java应用程序的执行入口时main()方法:public static void main(String[] args){…} Java语言中严格区分大小写 编译后,每一个类都对应一个class文件 第2章基础语法 标示符由字母、下划线”_”、美元符”$”或数字组成 标示符应以字母、下划线、美元符开头 Java标示符对大小写敏感,长度无限制,注意“见名知意”且不能与Java语言关键字重名 goto和const虽然未使用,但也被作为Java的关键字保留

相关主题
文本预览
相关文档 最新文档