当前位置:文档之家› JAVA学习笔记基础知识.doc

JAVA学习笔记基础知识.doc

JAVA学习笔记基础知识.doc
JAVA学习笔记基础知识.doc

JDK :可以开发编译与运行JAVA程序的工具。

JRE:可以运行JAVA程序的工具。

JVM:java虚拟机,是在一台计算机上山硬件或软件模拟的计算机。它的功能是读取并处理编译过的字节玛文件(class文件)

环境变量:

path:JDK 中bin 目录

classpath:.

java_home:JDK 的路径

homc_path: JDK 的路径

开始一>Sitj->cnid->java -version

JavaSE—Oraclc 今JavaEE

Java版木:

JavaSE:J2SE

JavaEE:J2EE

JavaME:J2ME

JAVA文件类型:

.java文件:源文件,保存JAVA源代码,文本文件。

.class文件:类文件,保存字节码,二进制文件。

使用javac命令将java文件编译为class文件:javac文件名.java (DOS文件名不区分大小写)使用java命令运行class文件:java类名(类名区分大小写)

1.在一个JAVA文件中可以有多个类

2.在个JAVA文件中只能有一个公有(public)的类

3.公有的类的名字必须与文件名-样(包括大小写)

4.JAVA代码区分大小写

5.niain()是程序的入口

6.通常情况下main()应该放在公有的类中

7.每句代码后面用分号表示结束

8.不允许在代码中直接书写中文的标点

注释:

1.单行注释:〃

2.多行注释:/*注释内容*/

3.文档注释

第三章

数据类型:有两种。基本数据类型(简单数据类型),引用数据类型。

基本数据类型:有8种

数字类型:整型,浮点型

1.整型:表示十进制,八进制(0开头),十六进制(用Ox或0X头),在JAVA中没有无符号的数

a)byte:字节类型,1个字节-27—27-1

b)short:短整型,2 个字节-215—215-1

0 int:整型,4个字节在JAVA中整数默认为讪,-231—231-1

d) long:长整型,8个字节,-263—263.1,在数字后加1或L

2.浮点型:

a)Ooat:单精度,在数字后面加F或仁4个字节

b)double:双精度,在JAVA中-个浮点型的数字默认为double类型。8个字节

3.字符类型:char,字符类型的值要放在一?对单引号中,单引号中必须只有一个字符(一个字母,数

字,\u0000')。在JAVA中所有的字符都占两个字节]

4.boolean类型:值true ( }'(■)或false(假)。boolean类型的值不能与其它类型进行转换。

变量:强类型的语言。

1.格式:数据类型变量名;

2.JAVA中标识符命名的规则:

a)标识符由字母,下划线,数字,美元符($)组成。

b)不能用数字开头。

c)不能使用关键字(在JAVA中关键字都为小写)。

注意:当变量没有赋值时不能使用。

常最:只能赋值-?次的变量。

使用final关键字。

运算符:

1.算木运算符:+,-,*,/,% (取余数),++ (自增),--(白减)。JAVA中混合运算的结果

的类型,根据运算元素的精度与长度决定。

2.关系运算符: >、>=,<,<=,=(判断是否相等),!=(不等于),结果一定是boolean类型。

3.赋值运算符:=,将右边值(结果)赋给左边的变量。

4.字符串连接符:+

5.逻殂运算符:逻辑与(&),逻辑或(I),短路与(&&,当第一个表达式为false时,不执行第

二个表达式),短路或(II,当第一个表达式为true时,不执行第二个表达式),逻辑非(!)

6.扩展运算符:+二,-=,*=,/=,%=,可以将结果的类型自动转换为接收的类型

7.三目运算符(三元运算符):x?y:z°当x为【rue时,返回y的值,当x为false时,返回z的值。

基本数据类型的类型转换:

1.小的可以直接赋给大的。

2.大的必须强转才能赋给小的。

3.boolean不能转换为其它类型。

4.byte,short,char进行算术时结果会自动转换为int

流程控制:顺序结构,选择结构,循环结构一.选择结构

if语句

格式:

if(条件){

代码;

if(条件){

代码;

)else(

代码;

if(条件){

代码;

)else if(条件){

代码;

)c1scif(条件){

代码;

)else(

代码;

1.if语句中的条件的结果必须为boolean类型的值

2.if语句的大括号可以省略,但省略后if的作用范围只在if后面的一行代码。

3.一个if语句中可以出现0个或1个else

4.else语句必须出现在if语句的最后

5.一个if语句中可以出现0个或多个else if

6.当匹配分支后,其它分支将不再执行。

switch语句:switch语句只能判断是否相等。

switch(变量){

case 值:

代码;

[break;]

case 值:

代码;

[break:]

default:

代码;

[break;]

1.switch 语句中变揪的类型必须为int,byte,short,char,枚举(JDK 1.5),String(JDK 1.7)

2.case后面的值不能至复

3.case后面只能放常量或字面值

4.当switch匹配-?个分支后,将从这个分支开始执行后面所有的分支直接switch语句的结束,或遇

到第一个break为止。

5.switch语句会先执行所有的case语句,当所有的case语句都没I兀配到时,执行default

6.default语句不一定出现在switch语句的最后

switch中没有break时是什么情况

循环结构:

while循环:当循环次数不确定时使用while循环

while(条件)(〃条件为布尔类型

循环体;

先判断,再循环

Math.randomO:随机数方法,返回一个大于或等于0但一定小于1的double类型的值

do...while 循环:

do{

循环体;

)while(条件)

先循环,再判断

array [0]: 10

array:引用

for 循环:当确定循环次数时使用for 循环。for 循环中三部分都可以省略。 for (循环变量初始化:循环条件;循环变量自增/自减){

循环体;

break:必须放在switch 语句或循环语句中。 放在循环中的作用:结束所在循环。 带标签的break :结束标签后面的循环。

continue:只能出现在循环语句中。结束木次循环,使用循环直接进入下一次循环。 带标签的continue :使标签后面的循环结束本次循环,直接进入下一■次循环。 数组:多个相同数据类型的集合。

在JAVA 中所有的数组都是引用数据类型,但数组中每个元素可以为基本数据类型 一雄数组:

声明数组:不能写数组的长度 数据类型[]数组名; 数据类型数组名[]: inl[10] a;〃错误。

创建数组:必须指定数组的长度。当确定了数组的长度后,数组的长度便不能修改。数组的长度可 以为0,但不能为负数。

inl[] anay = (1,2,3,4,5,6,7,8,9}; java 习惯

int array! [] = new int[10]; c 习惯 inl[] array2 = new int[]{ 123,4,5};

array[ 1]:22

array[2]:31

访问数组的元素:通过下标可以访问数组的元素。在JAVA

中数组的下标从。开始

数组名[下标],数组中最大的下标为数组的长度减1

数组与循环

for each循环:遍历集合。JDK 1.5以后;I网。

for(数据类型变量:集合名)(

代码;

命令行参数:java类名命令行参数,命令行参数以空格作为分隔符。山main。中的SEng[]接收

二维数组:

声明数组:

数据类型[][]数组名;

数据类型数组名[][];

数据类型[]数组名[];

创建数组:

array ={{ 1,3,5},{2,4,6},{7,8,9}};

int anayl[][] = new int[3][3];//在创建多雄数组时,高雄不能省略,低维可以省略如:

int anayl [][] = new int[3][3];

第四章

类与对象

1.成员变量(全局变量,字段,属性,域):描述类的特征。在类中声明的变量。在类中都可用。

成员变量有默认值(byte.shortjnt默认值为O.long默认值为OL.double默认值为:OQfloal默认为O.OEboolean默认为false,char默认为M0000?,引用数据类型默认为null).

2.局部变量:方法中声明的变量,只在方法中可用。局部变量没有默认值.

4.在一个类中想调用另一个类的成员(成员变量与成员方法),必须声明并创建这个类的对象,通

过类的对象调用类的成员。格式为:对象名.成员。

5.成员方法(成员函数):描述类的行为(动作)。

6.方法声明的基本格式:

访问权限返回类型方法名([参数]){

方法体;

}

当方法没有返回类型时,用void表示,可以使用return但不能返回数据

return的功能:I .返回数据;2.结束方法

方法的重载:一个类有多个名字相同但参数不同(个数不同,类型不同,顺序不同)的方法。

子类能重载父类的方法

构造方法(构造函数,构造器):

1.方法名与类名相同。

2.构造方法一定没有返回值,并且不能写void

3.类一定有构造方法。

带格式的:编号+级别

:1 +编

号粹式:1, 2, 3,… +起始编号:1 +对齐方 式:左侧+对齐位置:0 磅+制表符后于:18磅 +缩进位置:18磅

4. 当没有在类中显式的写构造方法时,JVM 会自动为类添加一个默认的构造方法。

5. 默认构造方法:没有参数,没有方法体

public 方法名(){ }

6. 构造方法无法任意调用。只有new 时才能调用类的构造方法。new 构造方法().

7. 构造方法的功能:为类的成员变量初始化。

8. 当在类中显式的写了构造方法,JVM 就不会为类添加默认的构造方法。 this 关键字:在类中调用自身的成员。

static X??-: JU static 修饰的成员可以使用类的对象调用,也可以使用类名(接口名)调用。 I.

修饰成员变量:静态变量。静态变量对于类的对象而言是共用份的。

2. 修饰成员方法:静态方法。挣态方法只能直接调用静态的成员(成员变量,成员方法九不能使 用

this 与super 关键字° final 修饰的成员变量如何初始化:

1. 在声明final 类型的成员变量时,直接为这个变量初始化。

2. 如果没有在声明时为final 的成员变量初始化,就需要在这个类的所宥的构造方法中为这些final 的

成员变量初始化(保证类的对象在构造完成前,这些final 的成员变量需要被初始化). 包:本质就是文件央。包主要的作用解决类的重名问题。

1. 当类出现在 个包中时,类的第 行必须是packa 呢语句,说明类存在于哪个包下。

2. package 语句必须出现在类的首行(注释除外)

3. 类可以引用同包下的类。

4. 当类诃使用其它包中的类时,要使用import 语句导包。

5?在https://www.doczj.com/doc/607946828.html,ng 包H 1的内容可以直接使JI ]不JIJ 导包。

类的继承:单继承:一个类只能有一个父类(直接的父类)。

名字,性别,

职业,耐力,

力量

走,跑,跳, 攻击

使用extends关键字,使一?个类继承另一个类。

父类:超类,根类,基类

子类:派生类

访问权限:public\protected\默认'private,普通的类(顶层类)只能用public与默认修饰,修饰类的成员,

但不能修改局部变量。

类内部同包下的类不同包下的子类不同包下的其它类private Y N N N

默认(包权

限)

Y Y N N

protected Y Y Y N

public Y Y Y Y

name:BB age:20

school:大连

第五章

方法的重载:一个类有多个名字相同但参数不同(个数不同,类型不同,顺序不同)的方法。

方法的重写(方法的覆盖):

1.子类根据需要重写父类中的方法。

2.重写的方法要与被重写的方法具有相同的方法名,参数列表,返回类型。

3.重写的方法的访问权限要大于或等于被重写方法的访问权限。

4.static修饰的方法不能产生重写。

5.重写的方法不能抛出比被重写的方法范围更大的异常。(小于或等于可以)

class Foo (

Siring doStuff(inl x) ( return "hello"; }

1

A String doStuft(String s) ( return "Hello"; }屯裁

B int doStuff(String s) ( return 42: }重载

C String doStuff(int x) ( return "hello"; }重写

super关铤字?:在子类中引用父类的成员。

子类可以继承父类中private的成员,但不能使用。

子类不能继承父类的构造方法。

继承中的构造方法:

1.子类在构造自己的过程中必须调用父类的构造方法。

2.子类在自己构造方法的第一行使用s叩河参数])调用父类的构造方法。

3.如果没有显式的写s叩cr([参数]),JVM会口动在子类构造方法的第一行添加super()调用父类无

参的构造方法。

4.当父类中没有无参的构造方法,而子类又没有显式的调用父类有参的构造方法,则编译失败。

可变参数:只能用在方法的形参中。格式:数据类型...变杭名,本质是一个一维数组。在声明方法时不能在可变参数的后面添加其它的参数。

当方法的形参为基木数据类型时,形参的值改变实参的值不变。当方法的形参为引用数据类型时,形参的值改变实参可能改变。

instanccof运算符:判断左边的对象是否为右边类的对象或右边类的子类的对象。如果左边的对象与右边的类没有继承关系,编译失败。

引用数据类型的类型转换:

1.子类可以直接赋给父类。

2.父类必须强转才能赋给子类。

3.?当父类的变果指向的不是了类的对象时,代码运行时会发生运行时异常

4.当两个类没有继承关系时不能进行类型转换,否则编译失败

多态与动态绑定:

1.父类声明,子类创建。

2.多态时调用的方法是子类的方法(如果子类重写了父类的方法)。

3.多态时调用的成员变量是父类的成员变量。

抽象:abstract

1.修饰类:抽象类。抽象类不能实例化(不能new)。只能使用抽象类的子类。

2.修饰成员方法:抽象方法。抽乡、n "的声明没有方法的实现。子类必须重写父类中所有的抽象方

法(如果子类是抽象类可以不重写)。抽象方法所在的类必须是抽象类。

3.修饰接曰:

抽象方法不是只能放在抽象类中,接口中也可以

abstract不能与哪些关键字一起使用:private,static,final

final

1.修饰变量:只能赋值一次

2.修饰方法:子类不能重写父类final的方法。

3.修饰类:类不能被继承。

第七章

:使JAVA实现多继承Mmeiface关键字创建接曰。接口不是类(不能new)只能是用接口的实现类(不能实例化接口的对象)

1.接口中包含常量与抽象方法

2.接口中的常量默认为public static final,也必须为public static final.

3.接口中的方法默认为public abstract,也必须为public abstract

4.类可以实现(implements)接口,一个类可以实现多个接口

5.当类实现接I」,类必须重写接LI中所有的抽象方法(如果类是抽象类可以不重写)

6.接口可以继承其它接曰,接曰可以继承多个接曰。

〃声明一个内部类的对象Outclass .InterClass in;

Outclass o = new Outclass();

//创建实例内部类的对象in = o.new InterClass();

普通内部类不能包含static静态类。

内部类:一个类中嵌套一个类,内部类可以使用所有的访问权限修饰,内部类可以使用stalic修饰

1.实例内部类(普通内部类):实例内部类可以直接使用外部类所有的成员,实例内部类不能包含

sialic的成员。

2.静态内部类:用static修饰的内部类。静态内部类中可以有静态与非静态的成员。静态内部类只能

直接使用外部类中静态的成员。

3.局部内部类:在方法中创建的类。不能使用访问权限修饰,可以访问局部变量,但这些局部变量

必须是final的

第八章

异常处理:

Throwablc类:JAVA所有错误与异常的父类。

Error类:在编程时不用(不应该)捕获与处理的错误。

Exception类:在编程时需要捕获与处理的异常。

RuntitncExccption类及其子类:在编程时可以不捕获的异常,但运行时程序可能会发生错误。非运行时异常(编译错误):在编程时必须捕获与处理的异常,否则代码无法编译。

捕获并处理异常

try{

可能会发生异常的代码

)calch(异常的类型){

处理异常的代码

} finally(

无条件执行的代码

1.try块不能单独使用,必须与catch块或finally块?起使用。

2.当liy块中发生异常时,从发生异常的代码开始之后iry块中的代码将不可执行。

3.—个try语句中可以出现0个或多个catch块

4.可以在catch块中使用Exception捕获并处理所有的异常。

5.Exception只能出现在最后一个catch块中。

6.-个try语句中只能出现0个或1个finally块

7.finally块中的代码一定会执行。

0定义的异常:类继承Exception或Exception的子类

手动抛出异常:throw关键字。在方法的运行过程中手动的抛出一个异常。必须出现在方法体中。

声明异常:throws关键字,只能出现在方法的声明中,是通知方法的调用者此方法在运行时可能会发生一些异常(笔试)

当父类的构造方法抛出异常时,子类的构造方法也必须抛出同样的异常。

当调用的方法可能抛出非运行时异常时,在调用方法的同时必须处理这些异常

常用类:

javaJang.String类:在JAVA中表示不可变的字符序列。如果字符串要频繁进行修改时不要使用String 类。

==比较的是:引用(地址)。

常用的方法:String类的方法不会改变Q己的内容。

charAt(int index):获得字符串指定位置的字符。

Iength():获得字符串的长度。

indcxOf(String s):在字符串中查询字符串s首次出现的位置,没找到返回-1

indexOf(String s,int index):从字符巾的第index位开始查找字符串s首次出现的位置,没找到返回-1. equals。:判断字符中的内容是否相等(区分大小写)。

equalsIgnoreCase():判断字符申的内容是否相等(不区分大小写)。

rcplacc(char cI,char c2):将字符串出出现的所有的cl用c2替换掉

StringBufter(s.replace(start, end 字符串")):

substring(int begin):从符申的第begin位开始截取字符串直.截取到'字:符串的最后。substring。nt begin,int end):从}符串的第begin位开始截取;:符串一直.截取到第end位。

trimO:去掉字符串左右的空格。

valueOf(XXX i);将i转换为Siring类型的值。基木数据类型转换成引用数据类型

StringBuffcr与StringBuildcr::可变的字符序列。如果字符串需要频繁修改时应该使用StringBuffcr或StringBuildcr.

常用的方法:

append(XXX s):将指定的内容s追加到字符串中。

inserl(inl index.XXX s):在字符串第index位之前插入内容s

delete(int beginjnt end):从第begin位开始删除字符串一直到第end位之前

rcvcrscO:将字符串倒序排列。

java.ulil.Date 类:日期

java.util.Calendar 类:日历

java.text.DateFonnat类:格式化日期,将日期转换成指定格式的字符串。

https://www.doczj.com/doc/607946828.html,ng.Object类:是JAVA中所有类的父类。

equals。:判断内容是否相等。这个方法最早出现在Object类中,但Object类的equals()比较的不是内容而是引用是否相同。

包装类(封装类):共8 个,Byte, Short, Integer, Long, Float* Double, Character* Boolean

所有的包装类都是final

final

修饰变量:只能赋值一次

修饰方法:子类不能重写父类final的方法。

修饰类:类不能被继承。

装箱:将基木数据类型转换为包装类。

拆箱:将包装类转换为基本数据类型。

从JDK1.5以后JAVA可以自动的装箱与拆箱

集合框架:

Set(集):不保存元素加入的顺序,不能有重复值。

List(列表):保存元素加入的顺序,可以有重复值。

Map:保存一对值(键值对,Key-Value),键不能重复,值可以重复。

ArrayList:是线性表,按位置(索引)查询元素时效率高,但添加与删除元素效率低。

LinkcdList:是链表,添加与删除元素效率高,但按位置查找元素时效率低。

功能与Array Li st 一样,但Vector是线程安全的,ArrayList是线程不安全的。

Hashtable与HashMap的区别:Hashtable是线程安全的,HashMap是线程不安全的java.io.File类:文件或目录

I/O流(输入/输出流):输入/输出流的分类:

1.按方向:输入流,输出流。

2.

字节流字符流

输入流(读文件)InputStrcam Reader

输出流(写文件)OutputStrcani Writer

3.按功能:节点流,管道流(处理流)。

字节输入与输出流:

输出流:当文件不存在时,输出流会自动创建文件。当目录不存在时抛出异常。输入流:当文件或目

录不存在时,抛出异常。

面试

线程:

JAVA中创建线程的两种方法:

1,类继承Thread类

2.类实现Runnable接U

线程的生命周期:

sleepdong n):Thread类的静态方法。使用当前的线程休眠指定的亳秒°当线程调用了sleep。方法后线程从运行状态变为阻塞状态。

join():合并(阻塞)线程

yield():使当前的线程让出CPU,使线程从运行状态变为就绪状态°

线程的优先级:1-10.1级为最低,10级为最高,默认为5级。优先级并不可靠,优先级高的线程会获得更多的时间片。

线程同步:

1.synchronized 关键字

2.锁对象:JDK1.5以后出现的。

面试

线程同步:

3.synchronized 关键字

4.锁对象:JDK 1.5以后出现的。

泛型类/泛型接口:

单例模式(单子模式,Singleton):使类在程序运行的过程中只能产生一个实例。

1.类的构造方法必须为private.

2.有--个private static的白身类型的一个成员变量。

3.有一个public static返回类型为自身的一个成员方法。

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基础知识

一、填空题(每题1分,共50分) 1.Java程序可以分为两种基本的类型,分别是_________________和_________________。 2.如果一个类不显示地写上其继承的父类,则它的默认的直接父类是系统类_______________。 3.Java对内存的释放是采用____________________机制。 4.接口的所有成员方法都具有________________和________________属性。 5.设有一个Java应用程序,其源程序文件名为Test.java,则编译该源程序的命令是_________________________,运行该应用程序的命令为_________________________。 6.如果线程类A需要继承类B,而类B不是线程类,则需要通过接口类Runnable构造线程类A,类A的具体定义为 ___________________________________________________。 7.Java系统提供了方法____________________来强制立即回收垃圾。 8.运行以下语句后b的值是__________________。 String s1=“1234”; String s2=new String(“1234”); Boolean b=(s1 = = s2); 9.通过Connection实例对象的_____________________方法可以创建出Statement的实例对象。 10.JAVA小应用程序一般是_____________的子类。 11.JAVA语言通过____________机制简化了程序的内存管理。 12.JAVA字符(char)采用的是___________字符集。 13.面向对象的计算机语言一般应具有3个基本特性:____________、____________和______________。 14.JAVA语言中,捕获异常是通过________________语句结构来实现的。 15.编写线程程序主要是构造线程类,而构造线程类的方式主要有以下两种:(1)____________________________________________ (2)____________________________________________ 16.假设用JAVA语言为清华大学(网址为https://www.doczj.com/doc/607946828.html,)编写了图像处理包image,那么按照SUN公司的建议,这个包的名称最好为_________________。 17.JAVA数据类型中,具体包括哪三种引用数据类型:___________、____________、______________。 18.JAVA程序以________为单位进行组织的。 19.如果没有显式的定义类的构造方法,则系统会为该类定义一个默认的构造方法,这个默认的构造方法的作用是_____________________________________。

史上最全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编程基础知识点汇总及习题集》--答案

目录 第一章 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基础知识分析

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

JDK, JRE: 1JDK:java DevelopmentKit , java的开发和运行环境,java的开发工具和jre。 2JRE:java Runtime Environment, java程序的运行环境,java运行的所需的类库+JVM(java 虚拟机)。 3配置环境变量:让java jdk\bin目录下的工具,可以在任意目录下运行,原因是,将该工具所在目录告诉了系统,当使用该工具时,由系统帮我们去找指定的目录。 1) 永久配置方式: JAVA_HOME=%安装路径%\Java\jbk Path=%JAVA_HOME%\bin 2) 配置临时方式: setpath=%path%C:\ProgramFiles\Java\jdk\bin 特点:系统默认先去当前路径下找要执行的程序,如果没有,再去path中设置路径下找。 classpath的配置: 1)永久配置方式:classpath=.;c:\;e:\ 2)临时配置方式:setclasspath=.c:\;e:\ 注意:在定义classpath环境变量时,需要注意的情况: 如果没有定义环境变量classpath,java启动jvm后,会在当前目录下查找要运行的类文件。如果指定了classpath,那么会在指定的目录下查找要运行的类文件。 还会在当前目录找吗?两种情况: 1)如果classpath的值结果有分号,在具体路径中没有找到运行的类,会默认在前目录 在找一次。 2)如果classpath的值结果处没有分号,在具体路径中没有找到运行的类,不会再当前 目录找。 一般不指定分号,如果没有在指定目录下找到想运行的类文件,就报错,这样可以调试程序4javac命令和java命令做什么事情呢? 要知道java是分两部分的: 一个人是编译,一个是运行。 Javac: 负责的是编译的部分,当执行javac时,会启动java的编译器程序。对指定扩展名的.java 文件进行编译。生成了jvm可以识别的字节码文件。也就是class文件也就是java的运行程序。 Java: 负责运行的部分.会启动jvm.加载运行时所需的类库,并对class文件进行执行. 一个文件要被执行,必须要有一个执行的起始点就是main函数(也叫方法)。

Java基础知识总结

基础预备:低级基础 1.1 java基本类型 byte(字节) short(短整型) int(整型) long(长整型) float(浮点型) double(双精度) char(字符型) boolean(布尔型) 1.2值传递和引用传递的区别 值传递:实参初始化形参,两个存储单元不同,不影响实参的值 引用传递:实际参数与形式参数指向同一个地址,形式参数的改变将会影响实际参数1.3当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 是值传递。方法调用该对象引用的参数,参数被改变,但是引用不会改变 1.4 &和&&的区别。 &和&&都是逻辑「与」,&&只要第一个表达式是false就不会计算第二个表达式 &也可以作为运算符 2.1使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变 引用变量不能变,引用变量所指向的对象中的内容可以改变 2.2final类型可不可以不初始化,如果没有初始化的final类型应该在哪里初始化? final一定有初始值,没有初始化叫空白final 如果没有需要声明之后在其构造器中赋值 2.3 "=="和equals方法究竟有什么区别? 「==」是看两个对象引用是否指向同一个对象 「 equals() 」是比较两个对象的内容是否相等 3.1静态变量和实例变量的区别 静态变量的变量前加了static 的修饰,其中一个对象将它值改变,其他对象得到的就是改变后的结果; 实例变量的变量前没加static 的修饰,某一个对象将其值改变,不影响其他对象

3.2是否可以从一个static方法内部发出对非static方法的调用?为什么? 不可以。使用非static方法需要先创建对象,而使用static方法则不用 4.1 java中什么是自动装箱与拆箱呢? 自动装箱是某地方需要Integer类型,你传int类型会自动生成Integer, 反之Integer变int,就是自动拆箱 4.2 int 和 Integer 有什么区别 Int是基本数据类型,Integer是int的封装类。 原始类型封装类 Boolean Boolean Char Character Byte Byte Short Short Int Integer Long Long Float Float Double Double 5.1请说出作用域public, protected,以及不写时的区别 不写是表示friendly。 作用域当前类同一package 子孙类其他package public √√√√ protected √√√× friendly √√×× private √××× 6.1能不能自己写个类,也叫https://www.doczj.com/doc/607946828.html,ng.String? 可以,但在应用的时候,需要用自己的类加载器去加载,否则,系统的类加载器永远只是去加载jre.jar包中的那个https://www.doczj.com/doc/607946828.html,ng.String。 7.1 排序都有哪几种方法?请列举。用JAVA实现一个快速排序。 冒泡,选择,插入,快速 冒泡排序:

java基础知识点

第一天课程(2012-7-10) JAVA常用的名词 JVM java 虚拟机 Application 应用程序必须有一个入口的方法叫做public static void main(String[] args){} Applet 小应用程序该程序必须要内嵌在一个容器中运行,它有自己的生命周期 重点: JAVA的开发环境 JDK: java 开发工具集 JDK版本问题1.4不支持泛型5.0 泛型 6.0枚举 默认安装路径C:\Program Files\Java\ JRE: JAVA运行时环境 环境变量的配置 (1)Path:window寻找可执行应用程序的一个查找路径不同的路径之间使用; 来分隔 配置一个路径C:\Program Files\Java\jdk1.6.0_26\bin (2)CLASSPATH 告诉系统到那些目录下面去查找对应的要执行的文件 .;D:\3020\j2se\cx\chapter1 .表示当前目录 预习作业: 常用的DOS命令 切换目录查询文件拷贝文件重命名移动文件 *表示通配符*.java *.* 常用java命令 Javac 编译命令主要将以.java结尾的Java文件编译生成以.Class结尾的二进制字节码文件。 Javac java文件名.java Java 运行命令java 类名 Javadoc生成帮助文档命令 javadoc java文件 面向对象的基本概念

类 (属性方法构造方法 ) 对象对象创建传递销毁 面向对象的三大基本特性:封装、继承、多态 OOP AOP 类 是由客观事物经过大脑抽象而形成概念,是对一类事物的描述 使用class 关键字来描述类 类中有属性和方法: 属性对应的是事物的静态特性(可以叫做成员变量) 方法对应的是事物的动态特性 对象:是类的一个具体的实例化 创建对象对象的方法: 类名对象名= new 类名(); 调用类的构造方法来创建对象构造方法是特殊的方法:方法名=类名 注意: 类中属性和方法必须在创建对象之后才能使用 对象.属性对象.方法.表示引用 第二天课程 (2012-7-11) JAVA语言描述 类的声明 语法格式: [< modifiers>] class < class_name> { [] [] } 修饰词class类名{ 属性定义部分<可选> 构造方法 <可选> 普通方法 <可选> } 用于修饰class的关键字有两种:(1) public 公共的 (2)缺省不写表示当前类只能在同一个包中使用 注意点:(1)一个java文件中最多只能有一个类被public 修饰,并且要求使用public

java基础知识速成教程

数据类型 (1) 基本数据类型 (1) 引用类型 (3) 控制语句 (3) 顺序结构 (3) 选择结构 (3) 循环结构 (4) 面向对象 (5) 面向过程和面向对象的区别 (5) 类和对象 (5) 成员变量 (5) 方法 (5) 方法的重载(overload) .................................................................... 错误!未定义书签。 构造方法 (7) 内存分析 (7) package (9) import (10) this (10) static (11) super (11) 面向对象的三大特征 (11) 封装 (11) 继承 (12) 方法的重写(override) (12) 多态 (12) 抽象类 (14) 接口 (14) 面向接口编程......................................................................................... 错误!未定义书签。 本站已经对文档保护进行限制了,取消文档保护密码为:https://www.doczj.com/doc/607946828.html, 步骤:进入word 工具---》取消文档保护 数据类型 基本数据类型 a)数值型 i.整型 1.byte 1个字节(256) -128-127 2.short 2个字节(65536) 正负3万 3.int 4个字节正负21亿 4.long 8个字节

ii.浮点型 1.float 4个字节 2.double 8个字节 注: 类型的自动转换 b)字符型2个字节65536 unicode字符集 c)布尔型

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语言的允许的任何数据类型,包括基本类型与引用类型。 方法名:与成员变量的方法命名规则相同,通常建议方法名以英文动词开头。 方法体里多条可执行语句之间有严格的执行顺序,排在方法体前面的语句总先执行,排在方法体后面的语句总就是后执行。

java基础知识练习

1.Java语言特点是什么? Java语言具有如下特性:简单性、面向对象、分布式、解释型、可靠、安全、平台无关、可移植、高性能、多线程、动态性等。 2.什么叫Java虚拟机?什么叫Java平台?Java虚拟机与Java平台的关系如何? Java虚拟机(Java Virtual Machine) 简称JVM 。Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。 3.Java程序是由什么组成的?一个程序中必须有public类吗?Java源文件的命名规则是怎样的? 一个Java源程序是由若干个类组成。一个Java程序不一定需要有public类:如果源文件中有多个类时,则只能有一个类是public类;如果源文件中只有一个类,则不将该类写成public 也将默认它为主类。源文件命名时要求源文件主名应与主类(即用public修饰的类)的类名相同,扩展名为.java。如果没有定义public类,则可以任何一个类名为主文件名,当然这是不主张的,因为它将无法进行被继承使用。另外,对Applet小应用程序来说,其主类必须为public,否则虽然在一些编译编译平台下可以通过(在BlueJ下无法通过)但运行时无法显示结果。 4.开发与运行Java程序需要经过哪些主要步骤和过程? (1) 下载、安装J2SDK; (2) 设置运行环境参数:JA V A_HOME、PATH、CLASSPATH; (3) 使用文本编辑器编写原代码如HelloWorld.java; (4) 运行命令“javac HelloWorld.java”编译HelloWorld.java为HelloWorld.class; (5) 运行“java HelloWorld”生成HelloWorld.exe。 5.怎样区分应用程序和小应用程序?应用程序的主类和小应用程序的主类必须用public修饰吗? Java Application是完整的程序,需要独立的解释器来解释运行;而Java Applet则是嵌在HTML编写的Web页面中的非独立运行程序,由Web浏览器内部包含的Java解释器来解释运行。 两者的主要区别是:任何一个Java Application应用程序必须有且只有一个main方法,它是整个程序的入口方法;任何一个Applet小应用程序要求程序中有且必须有一个类是系统类Applet的子类,即该类头部分以extends Applet结尾。 应用程序的主类当源文件中只有一个类时不必用public修饰,但当有多于一个类时则主类必须用public修饰。小应用程序的主类在任何时候都需要用public来修饰。 6.安装JDK之后如何设置JDK系统的PATH,CLASSPATH?他们的作用是什么? (1)PATH环境变量。设置环境变量path是因为window xp是多用户操作系统,支持不同用户的个性化系统定制,这里设置的信息只影响当前用户,而不会影响其他用户。假如只有一个用户,只是运行.class文件,则也不需要设置path环境,因为JDK安装之后会把java.exe 等几个关键文件复制到c:\windows\system32目录中,而此目录已经存在于path变量,所以说用户变量path随不同用户而设置的,设置路径:“D:\jdk1.5\bin ”。PATH环境变量作用是指定命令搜索路径,在命令行下面执行命令如javac编译java程序时,它会到PA TH变

JAVA基础知识考核(含答案)

JAVA基础知识考核题 班级:姓名:成绩:一、选择题(80分,每题2分) 1.J ava编译器的命令是( D ) A.java B. appletviewer C. jdb D. javac 2. Java解释器的命令是( A ) A.java B. appletviewer C. jdb D. javac 3. Java开发人员使用的开发工具包是( C ) A.JVM B. JRE C. JDK D. Eclipse 4. 下列说法正确的是( B ) A. 使用Java语言开发的程序可以在任何平台下运行,且不需要JRE B. 使用Java语言开发的程序可以在任何平台下运行,但需要JRE C. Java虚拟机是独立的,JDK中不包含虚拟机 D. Java语言编译后是字节码文件,操作系统可直接执行 5. 下列全部是合法的Java标识符的是( B ) A. 09stu teacher $money B _salary post123 name C case abstract final D #ID list today 6. 程序中有如下语句 final float PI = 3.14f; 下列说法正确的是( C ) A PI 是一个变量,初始化的值是3.14. B 定义有错误,PI 是float类型3.14后不能加f C PI 是一个常量,其值是3.14 D 对PI可以重新赋值,如PI = 3.1415926; 7 下列初始化值正确的是(B ) A float score = 90.5; B boolean flag = false; C char name = "张三"; D boolean num = 1; 8. 有如下代码

Java基础知识

实验一Java基础知识 (以下作业输入输出要求采用控制台和对话框二种方式。) 1、输入一个以秒为单位的时间量,计算所包含的小时数、分钟数和剩余的秒数,并输出。 2、编程:从键盘输入坐标图中一个点的坐标,判断它属于哪个象限。 3、中国有句俗语“三天打鱼两天晒网”,某人从2012年1月1日起三天打鱼两天晒网,编 程计算这月某日,他在打鱼还是在晒网。某日从键盘输入,打鱼则输出Y,晒网则输出N。例如3日,输入为3,输出为Y。 4、编程猜数:计算机随机产生一个[10,20]区间的整数,由人来猜。输出猜测结果是大还是 小或是正确。 5、编程:输入某年某月后,输出该月的天数。 6、输入一个double型数代表美元和美分的总钱数,然后输出与总值等价的dollar(1元)、 quarter(2角5分)、dime(1角)、nickel(5分)、和penny(1分)的数目。 7、小学生学习减法的程序。程序随机产生二个一位整数number1和number2,且满足 number1>number2。程序显示数学算式,在学生输入答案后,程序输出答案是否正确。 8、编程从键盘输入某月第一天是星期几和该月的天数,打印该月月历。 9、编制猜数字游戏程序。每次运行程序时,先用随机函数产生一个整数,范围在100以内, 然后从键盘反复输入整数进行猜数,当未猜中时,提示所猜之数过大或过小,猜中时,指出猜的次数。最多允许猜6次。 10、输入某年某月某日,判断这一天是这一年的第几天? 11、如果一个整数的各位数之和能被9整除,则这个数也能被9整除。编程判断一个整数n是否能被9整除。其中,n由键盘输入。 12、阅读并分析程序,写出其输出结果,并上机验证。 public class BreakLabelDemo{ public static void main(String args[]){ int i,j; one: for(i=1;i<=10;i++){ System.out.print("Pass"+i+":"); for(j=1;j<=100;j++){ if(j==5)break one; System.out.print(j+"");; } } } } 13、编写一个石头剪刀布的小程序,可以使用户跟系统进行猜拳游戏。 游戏要求是:首先提示用户在石头剪刀布中间选择一个,确定后系统随机在石头剪刀布中间选择一个然后判断用户和系统哪个获胜。一局进行完后用户可以选择是否继续游戏,如果用户选择退出游戏则游戏结束。用户连续三次获胜系统提示“运气不错”后退出程序。如果连续失败三次,则提示“太倒霉了”退出程序。

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基础知识大全(必看经典)

第一讲 Java语言入门 1.1 Java的特点 1.1.1面向对象: ?与C++相比,JAVA是纯的面向对象的语言 C++为了向下兼容C,保留了很多C里面的特性,而C,众所周知是面向过程的语言,这就使 C++成为一个"混血儿"。而JAVA语法中取消了C++里为兼容C所保留的特性,如取消了头文件、指针算法、结构、单元等。 1.1.2可移植(平台无关性): ?生成中间字节码指令 与其他编程语言不同,Java并不生成可执行文件(.exe文件),而是生成一种中间字节码文件(.class文件)。任何操作系统,只要装有Java虚拟机(JVM),就可以解释并执行这个中间字节码文件。这正是Java实现可移植的机制。 ?原始数据类型存储方法固定,避开移植时的问题 Java的原始数据类型的大小是固定的。比如,在任何机器上,整型都是32位,而C++里整型是依赖于目标机器的,对16位处理器(比如8086),整数用两个字节表示;在像Sun SPARC这样的32位处理器中,整数用4个字节表示。在Intel Pentium处理器上,整数类型由具体的操作系统决定:对于DOS和Win32来说,整数是2个字节;对于Windows 9x 、NT和2000,整数是4个字节。当然,使整数类型平台无关之后,性能必然有所下降,但就Java来说,这个代价是值得的。Java的字符串,则采用标准的Unicode格式保存。可以说,没有这个特性,Java的可移植性也不可能实现。 1.1.3简单 ?JAVA在语法上与C++类似 JAVA的语法与C++很接近,有过C或者C++编程经验的程序员很容易就可以学会JAVA语法; ?取消了C++的一些复杂而低效的特性比如:用接口技术代替了C++的多重继承。C++中,一个类允许有多个超类,这个特性叫做"多重继承",多重继承使得编译器非常复杂且效率不高;JAVA 的类只允许有一个超类,而用接口(Interface)技术实现与C++的多继承相类似的功能 其它被取消的特性包括:虚拟基础类、运算符过载等 ?JAVA的基本解释器和类支持模块大概仅40K 即使加入基本的标准库和支持线程的模块,也才220K左右。与GUI(图形用户界面)相比,

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基础知识点答案

、12、类的执行路径。作用是指定Java设置为set classpath=“绝对路径”。classpath的设置及作用:文件的。寻找class是用来 javajavac命令在执行的设置及作用:是内部命令。在编译Java的时候需要用到3、path所以我们使用的时候windows自带的命令,java命令,这两个命令不时的时候要用到要设置好环境变量,这样就可以在任何目录下使用了。型点)、浮(整型(byte.short.int.long值类型:基本数据类型(数型JA4、VA数据。数组、接口)、布尔型(boolean))、引用数据类型(class.、字符型(float.double))(char)基本运算符号:赋值运算符、算术运算符、关系运算符、逻辑运算符、条件运AJA V5、 算符、括号运算符。程序基本控制语句:VA6、JA) 判断条件、if (1{ 1;语句2;语句} if(判断条件)2、{ 1;语句} else { 2;语句} (表达式)3、switch { ;;语句主体11 case 选择值;break 2;语句主体;case 选择值2 break; 3;选择值3;语句主体case ;break :语句主体;default} (赋初始值;判断条件;赋值增减量)、for 4{ 语句;} 5、while(判断条件) { 语句1; 语句2; } do 、6. { ;语句1 语句2; } ;while(判断条件)跳出本次循环进入到下次循环。break跳出循环。continue 数组的概念及使用:数组是由一组相同类型的变量所组成的数据类型,它们以一个共7、同的名称来表示。[] 数组名格式一:数据类型] [个数=new 数组名数据类型 i[] int 例:

java基础知识考试

Java基础测试题 一、选择题(每题2分) 1、在JA V A编程中,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按从小到大排列

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