java基础知识(适合新手入门)

java基础知识(适合新手入门)
java基础知识(适合新手入门)

Java基础知识

本文中主要分为三个部分,第一个部分介绍java的基本概念,第二部分介绍了java的基础知识,第三部分讲解了java的语法以及实现代码,适合java初学者学习。

一 Java概述

1.Java出现的背景:

1991 年Sun公司的James Gosling等人开始开发名称为Oak 的语言。希望用于控制嵌入在有线电视交换盒、PDA等的微处理器,但却没有取得成功,后来由于互联网的发展,而由于Oak语言本身的具有安全、可移植,又可跨平台,可以解决Internet 上的大型应用问题,所以在1994年将Oak语言更名为java语言,并且于1995年正式推出,使Java成为网上最流行的编程语言。

2.Java的特点

平台无关性:一个应用程序能够运行于不同的操作系统平台,主要采用的是虚拟机技术支持平台无关性。

简单:Java 设计人员删除了C++ 中许多复杂的功能,如指针操纵和运算符重载等。

面向对象:在Java 中任何东西都是对象。因此,重点集中在数据、应用程序中操作对象的方法以及过程上。

健壮性:Java 在编译和解释时都会检查代码。

安全性:Java 提供了用于执行程序的受控环境,以及多层次的安全控制。

分布式:Java 可用于开发能够在多个平台、操作系统和图形用户界面之间移植的应用程序。

多线程:Java 程序使用称为“多线程”的进程同时处理多项任务。

3.Java的三种运行平台

J2SE(java 2 Platform Stand Edition),Java标准版或Java标准平台

J2EE(Java 2 Platform Enterprise Edition),Java企业版或Java企业平台

J2ME(Java 2 Platform Micro Edition),Java微型版或Java小型平台

4.Java的三种核心机制

①.Java 虚拟机(Java Virtual Machine):实现java的跨平台

②.垃圾收集机制(Garbage collection):系统自动执行,不能强制执行

③.代码安全性检测(Code Security)

5.什么是虚拟机?

虚拟机:在一台计算机上由软件或硬件模拟的计算机。

6.Java实现跨平台的原理如下图:

7.什么是JDK?

JDK是sun公司推出的java开发工具包,包括java类库、java编译器、java解释器、java 运行时环境和java命令行工具。JDK提供java程序的编译和运行命令,但没提供程序编辑环境。java的一些开发工具提供程序的开发环境,如:Eclipse、MyEclipse和Jbbilder等,它们都是建立在JDK的运行环境之上的。

8.什么是JRE

是Java Runtime Environment (动态)简称,也就是java的运行时环境,它提供三个主要功能:

①.加载代码:由class loader 完成;

②.校验代码:由bytecode verifier 完成;

③.执行代码:由runtime interpreter完成

9.什么是Java编译器?什么是Java解释器?

Java编译器:针对Java虚拟机产生class文件,因此是独立于平台的。

Java解释器:负责将Java虚拟机的代码在特定的平台上运行。

10.JDK的安装与设置

①.下载JDK

②.安装JDK

③.设置环境变量,设置系统变量ClassPath,输入值为C:\Program Files\Java\jdk1.6.0_18\lib。

11.编译和运行环境

①.使用javac.exe命令编译java源程序,例如:javac Hello.java,编译后会产生一个字节码文件Hello.class

②.使用java.exe命令运行字节码文件,例如:java Hello。

二 java语言基础

1.注释

//:单行注释

/*…..*/:多行注释

/**…….*/:文档注释

2.标识符

定义:Java语言中,为各种变量、方法和类等起的名字称为标识符.

Java标识符的命名规则:

①.应以字母、下划线、美元符开头,后跟字母、下划线、美元符或数字

②.Java标识符大小写敏感,长度无限制,不以数字开头(常考)

3.关键字(keywords)

定义:是由java语义定义的、具有特殊含义的单词,java中的关键字如下图:

4.分隔符(separator)

分隔符用于分开两个语法的成分。关键字、标识符的分隔符是空格,语句的分隔符是(;),数据的分隔符是逗号(,)等。

5.基本数据类型

①.什么是数据?

数据是描述客观事物的数字、字符以及所有能输入到计算机中并能被计算机接受的各种符号集合。数据是计算机程序处理的对象。

②.什么是类型?

类型是具有相同逻辑意义的一组值的集合。

③.什么是数据类型?

是指一个类型和定义在这个类型上的操作的集合。数据类型定义了数据的性质、取值范围以及对数据所能进行的运算和操作。

6.数据类型分类

Java语言的数据类型分为两大类:基本数据类型(primitive type)和引用数据类型(reference type),如下图:

7. 基本数据类型的长度

字节型byte :占1个字节

短整型short :占2个字节

整型int :占4个字节

长整型short :占8个字节

单精度浮点数float :占4个字节

双精度浮点数double :占8个字节

布尔类型boolean :只有true 和false 两个取值

字符类型char :占两个字节

8. 转义字符

\t :制表符 \n :换行符 \r :回车符

\’’:双引号 \’:单引号 \\:反斜杠

9.java 命名规范

驼峰命名法:

①.类名:每个单词的首字母大写 public class UserAction{}

②.方法名:第一个单词的首字母小写,其他单词的首字母大写 public void insertUser(){} ③.变量:同方法名 private String userName;

④.常量:所有字母大写 private static final int NUMBER = 1;

10.变量

1) 定义:内存中的一块存储区域,用来存储数据的基本单元

2) 变量的声明及赋值

变量声明的格式为:变量类型 变量名

初始化变量的格式为:变量名=值;

3) 装载的数据从类型上划分:

基本数据类型变量

int a = 1;

double d = 2; 数据类型

基本数据类型 引用数据类型

数值型

字符型(char)

布尔型(boolean )

整数类型(byte, short, int, long)

浮点类型(float, double) 类(class)

接口(interface)

数组

byte c = 3;

引用数据类型变量

Student s = new Student();

4) java中的八种基本数据类型,从声明的位置上:

成员变量

局部变量

变量的作用域:一对{}之中,从变量声明处到“}”为变量的作用域。

11.数据类型转换

①.隐式数据类型转换(自动类型转换)

1)两种类型之间兼容

2)目标类型大于源类型(类型的提升)

例如,当byte型向int型转换时,由于int型取值范围大于byte型,就会发生自动转换byte b=3;

int x=b;//没有问题,程序把b的结果自动转换成int型了

整型和浮点型彼此都可以这样的转换。

数字类型字符串类型(String)或布尔类型(bollean )是不兼容的。字符类型(char )和布尔类型也是互相不兼容的。

②.显式数据类型转换(强制类型转换)

1)两种类型之间兼容

2)目标类型小于源类型

例如:目标类型变量= (目标类型)值

例如:byte a;

int b;

a = (byte)b;

当一个表达式中有多种数据类型时,会根据类型转换的规则自动提升为最高的数据类型。

③.Java类型自动提升的规则如下:

1)所有byte、short、char型的值将被提升到int型;

2) 如果一个操作数为long型,计算结果就是long型;

3)如果一个操作数是float型,计算结果就是float型;

4)如果一个操作数是double型,计算结果就是double型。

注意:所有计算过程都是操作数先被提升,结果也被提升

12.运算符

1) 算术运算符: +,―,*,/,%,++,――。

+ (加号)、-(减号)、/(除号)、*(乘号)、%(取模)

+(字符串相加)、++x(前自增)、x++(后自增)、--x(前自减)、x--(后自减)

+(正号)、-(符号)

2)关系运算符: >,<,>=,<=,==,!=

<(小于)、>(大于)、<=(小于等于)、>=(大于等于)、==(等于)、!=(不等于)

关系运算符生成的是一个“布尔”(Boolean)结果。它们评价的是运算对象值之间的关系。若关系是真实的,关系表达式会生成true(真);若关系不真实,则生成false (假)

3)布尔逻辑运算符: !,& , | , ^ , &&,||

4)赋值运算符: = 扩展赋值运算符:+=,―=,*=,/=

5)字符串连接运算符: +

6)赋值运算符

=(赋值)、+=(加赋值)、-=(减赋值)、*=(乘赋值)、/=(除赋值)、%=(取模赋值)赋值运算符的意思是“取得右边的值,把它复制到左边”。右边的值可以是任何常数、变量或者表达式,只要能产生一个值就行。但左边的值必须是一个明确的、已命名的变量a+=1相当于a=a+1,a/=2相当于a=a/2

注意:

“=”与“= =”的不同

+字符串相加符号能将字符串与其他的数据类型相连成一个新的字符串;

++x是在变量x参与其他运算之前先将自己加1后,再用新值参与运算,而x++是先用原来的值参与运算后再将自己加1;

如果对被模数取负模,则可以把模数的符号忽略不计,如5%-2=1;

对于/号。整数除和小数除是有区别的:整数之间的除法时,只保留整数部分而舍弃小数部分;

13.流程控制语句

①.选择语句

if{}、if{}else{}、if{}else if{}…else{}、switch(){case 值:表达式;………}、三目运算符(condition)?value1:value2

②.循环语句

for(表达式1;表达式2;表达式3){语句}、while{布尔表达式}、do{语句;}while(布尔表达式)

14.数组

①.定义:存储同一种数据类型\长度固定的数据的数据结构

数组属引用类型,数组型数据是对象(object),数组中的每个元素相当于该对象的成员变量,数组中的元素可以是任何数据类型,包括基本类型和引用类型。

②.数组声明

一维数组的声明方式:

type var[] 或type[] var;

例如:int a[];

int[] a1;

double b[];

Mydate []c;

注意:Java语言中声明数组时不能指定其长度(数组中元素的个数),例如:

int a[5]; //非法

③.创建数组

Java中使用关键字new 创建数组对象,例如:int[] s; s = new int[10];

④.数组初始化

静态初始化:

在定义数组的同时就为数组元素分配空间并赋值。

int a[] = { 3, 9, 8};或者double[] ds = new double[]{1,2,3,4,5};

数组元素下标从0开始;长度为n的数组合法下标取值范围:0 ~ n-1;

数组通过.length来指定长度,,例如:a.length 指明数组a的长度(元素个数).

三面向对象

1.对象

对象:在解空间中要研究和关注的各种事物(软件边界之内),不仅仅是具体的事物,还可以是抽象的规则,一个连接,一个计划,...instance实例

2.类

类:具有相同或者相似性质的对象的抽象,是对一组相似对象的概括

3.属性

属性:对这一类事物的内在性质的描述--成员变量--要解决的问题相关的

定义属性:访问修饰符+修饰符+数据类型+属性名

例如:private int a;

4.方法

方法:这一类事物对外界的行为

定义方法:访问修饰符+修饰符+返回类型+方法名+参数列表+异常+方法的实现5.Java内存

寄存器:在虚拟cpu内部

栈:一块连续的内存空间,基本数据类型变量和引用数据类型变量的引用

堆:不连续的内存空间,存放的是引用数据类型变量的值

静态存储区域和常量存储区:static和final修饰的变量

6.创建类的对象

声明并创建一个Person类的对象,将该对象命名为p,例:Person p1 = new Person();

步骤:

①.在栈中创建一个Person类型的引用p

②.使用new关键字在堆中开辟一块内存空间

③.将对象赋值为空

④.执行构造方法,对对象进行初始化工作

⑤.将堆中对象的地址返回给引用p,即p指向对象new Person()

7.对象中的成员变量:有初值

基本数据类型的成员变量:

byte 0

short 0

int 0

char ''

long 0

double 0.0

float 0.0

boolean false

引用数据类型的成员变量null

8.对象中的方法的形参和实参

形参:定义方法时定义的参数列表

实参:调用方法时传递的实际参数

9.java中参数的传递

java中方法参数的传递永远是值传递

对于基本数据类型:传递的是基本数据类型的值

对于引用数据类型:传递的是引用地址的值

在方法中定义的变量(局部变量)必须初始化

10.面向对象的三大特性

①.封装:隐藏对象内部的属性,对外提供公开的getters和setters方法访问属性

例如:public class Student {

private String name;

public String getName() {

return name;

}

public void setName(String name) {

https://www.360docs.net/doc/212783237.html, = name;

}

public static void main(String[] args){

Student s = new Student();

s.setName("zhangsan");

}

}

②.继承:子类继承父类,子类继承父类的所有属性和方法

单继承:一个父类可以有多个子类,一个子类只能有一个直接父类

③.多态:同一个名字或者符号在不同的语境下具有不同的语义解释

1) 编译时的多态--静态的多态

方法的重载overload

例如:构造方法重载

public class student{

private String name;

private int age;

public student(String name){

https://www.360docs.net/doc/212783237.html, = name;

}

public student(String name,int age){

https://www.360docs.net/doc/212783237.html, = name;

this.age = age;

}

}

2) 运行时的多态--动态的多态

方法的重写override 对象的造型casting

方法的重载(overload):发生在同一个类中,有一组同名的方法,参数列表不同(类型\个数\顺序),返回类型可以相同,可以不同,抛出的异常可以相同,可以不同,访问修饰符可以相同,可以不同

方法的重写(overide):发生在继承关系中,子类重写父类同名的方法,改变方法的实现.判断子类是否重写了父类的同名方法,首先看参数列表必须相同(类型\个数\顺序),返回类型必须相同(子类重写方法的返回类型可以是父类被重写方法的返回类型,或者是父类被重写方法返回类型的子类),访问权限不能更严格

例如:子类继承父类,并重写父类的方法。

public class People {

public void show(String xing,String ming){

System.out.printl n("bbb");

}

}

public class ChinesePeople extends People{

public void show(String xing,String ming){

System.out.println("xxxx");

}

}

11.构造方法

定义:在使用new关键字时,调用构造方法初始化对象

写法:访问修饰符+类名+参数列表+方法实现

重点:没有定义构造方法时,系统会有一个默认的无参的构造方法,该方法没有方法体,也不做任何工作,当自定义了构造方法之后,系统默认的构造方法失效

构造方法不能被继承,创建本类的对象时,会先调用父类的构造方法,再调用本类的构造方法

1) 如果在本类构造方法中,没有显式指定调用父类的某个构造方法,则会默认调用父类无参的构造方法

2) 如果在本类构造方法中,显式调用父类构造方法,使用super关键字super(参数列表),调用父类定义的带相应参数的构造方法

3) 构造方法只能在new关键字之后,或者在其他构造方法中调用,不能在普通方法中调用

注意:构造方法不能被继承,所以没有重写的概念,但是构造方法可以重载

12.this和super:

①.在构造方法中,this(参数列表)\super(参数列表):调用本类或者父类带相应参数的构造方法

②.在一般方法中,this或者super表示当前引用对象或对象的父类this.属性名/方法名super.属性名/方法名

13.= =和equals

= =:

对于基本数据类型的变量,比较的是两个变量的值

对于引用数据类型的变量,比较的是两个引用保存的对象的地址

equals方法:

在Object类中定义,比较的是两个引用的地址

在其他类中,如果重写了equals方法,则按照重写后的equals方法的规则比较两个引用是否"相等"

14.对象的造型(casting)

定义:一个对象变量的引用可以指向多种实际类型的对象(形式类型和实际类型的不同) Person p = new Student();(Student类是Person的子类)

1.向上转型(上溯造型):父类类型的引用指向子类类型的实例

1)对于重写的方法,运行时调用的是子类重写的方法

2)对于自有的方法,不可见

2.向下转型(下溯造型)--强制类型转换

1)需要子类类型与引用对象的类型一致(存在继承关系)

15.static用法

①.修饰方法:static修饰的方法叫做静态方法,无需创建对象,直接类名.方法名(参数列表)

1) 静态方法只能访问静态方法或者属性

2) 静态方法中不能使用this或者super

3) 非静态方法可以访问静态属性或者方法

②.修饰属性:static修饰的属性,叫做静态属性/变量(类的属性\类的变量),无需创建对象,直接类名.属性名访问该静态变量

静态变量和静态方法不是某个对象所有,而是属于整个类的,(通过任意对象访问静态变量和静态方法都是访问的同一个类的静态变量和静态方法)

③.静态代码块

static{} 类加载的时候执行一次,不能访问非静态属性和方法,不能使用this或者super

④.修饰类:静态内部类

16.final用法

final修饰的类不能被继承

final修饰的方法不能被重写

final修饰的变量--常量,只能在定义时或者构造方法中赋值一次

17.static和final的比较

static int A 任意地方赋值一个类一个A

final int A 定义或者构造方法中赋值每个对象的A

static和final共同修饰的变量--静态常量,类的变量,一次赋值,只能在定义或者静态代码块中赋值

final修饰局部变量或者形参:常量(基本数据类型的形参,值不能变;引用数据类型的形参,地址的值不能变)

18.abstract

用abstract修饰的类叫抽象类,抽象类不能被实例化abstract和final不能同时修饰类或者方法

用abstract修饰的方法叫做抽象方法,抽象方法没有方法体,必须由继承该抽象类的子类来实现,

抽象类中,可以有非抽象方法

抽象类中,可以没有抽象方法

有抽象方法的类必为抽象类

抽象类可以继承抽象类

19.接口(interface)

定义:在一定"粒度"上反映"同类事物"的抽象表示,一种特殊的抽象类

接口中的方法,全部是抽象方法,public

接口中的属性,全部是public static/static final

20.StringBuffer和StringBulider的区别

StringBuffer:线程安全,执行效率低于StringBuilder

StringBuilder:非线程安全

21.重写hashCode方法,使得equals和hashCode方法遵循如下约定:

①.equals方法为true的两个对象,hashCode()一定相等

②.equals方法为false的两个对象,hashCode()不一定不相等

③.hashCode()不等,则equals()一定为false

④.hashCode()相等,则equals可能相等,可能不等

22.8种基本数据类型的封装类

byte -- Byte short -- Short char -- Charactor

int -- Integer long -- Long float -- Float

double -- Double boolean-- Boolean

注意:JDK1.5之后新特性:自动装拆包,java编译器在编译时,对于基本数据类型-->封装类型的转换规定:对于boolean,byte,相同的值放在同一个封装对象中,char<=127相同的值放在同一个封装对象中,short和int在-128到127之间,放在同一个封装对象中

23.类型间的转换

封装类-->基本数据类型xxxValue()

基本数据类型-->封装类构造方法/static valueOf(int x)

字符串-->基本数据类型static parseXXX(String str)

基本数据类型-->字符串""+1 / 基本数据类型-->封装类-->toString()

24.异常

例:

try{ --监视可能出现异常的代码段

int a = 1;

int b = 0;

int c = a/b;

}catch(ArithmeticException e){ --捕获发生的异常

e.printStackTrace(); --对异常做处理

}

异常的分类:

①.Error

②.Exception

1) 普通异常:需要显式的捕获

2) 运行时异常(RuntimeException的子类):不需要显式的捕获

多重catch块,catch的异常类型,从小到大,从子类到父类

finally:不管是否产生异常,finally中的代码一定会执行

25.throws和throw

Throws:声明方法可能会跑出某个异常,调用方法的时候要么用try\catch抓异常,要么继续向上抛异常

Throw:显式的抛出一个异常throw new Exception(),如果抛出的是非运行时异常,则需要throws声明,或者显式的捕获

26.自定义异常

在编写程序时,有时候系统提供的异常不能满足我们的需要,所以要自己定义一些异常,称为自定义异常,它继承Exception。

三java程序代码示例:

这部分主要讲述了一些java语法以及相应的实现代码。

1.//最基本的JAVA程序必须有一个类,在这里是MainTest

class MainTest

{

//在JA V A中,程序的入口也为main函数,函数前的限制符顺序必须为public static void,参数必须为String类型的数组

public static void main(String[] args)

{

System.out.println("Hello World!");

}

}

2.java源文件的命名规则

在同一个JA V A文件中可以定义多个类,但是只有一个类能定义为public

而且如果一个类被定义为public,这个文件的文件名必须和该public类

的名字相同。

class A

{

int a;

};

class B

{

int b;

};

public class C

{

public static void main(String[] args)

{

System.out.println("Hello World!");

}

}

3.基本数据类型的操作

class code01

{

public static void main(String[] args)

{

//JA V A的数据类型。请注意大小写

//一个字节的整型

byte e=3;

System.out.println(e);

//两个字节的整型

short h=4;

System.out.println(h);

//四个字节的整型

int f=4;

System.out.println(f);

//八个字节的整型

long g=5;

System.out.println(g);

//4个字节的浮点数

float a=11.3f;

System.out.println(a);

//8个字节的浮点数(更加精确)

double b=12.3d;

System.out.println(b);

//两个字节的单个字符。注意定义字符的时候不能用双引号,只能用单引号

char c='s';

String ss="xiongyong";

System.out.println(c);

//bool变量,用于判断真假。注意:true和false不能大写。

boolean d=true;

System.out.println(d);

//final关键字为“常量”,意思是不能再被修改。相当于C++中的const

final int x=1;

//以下这行将被报错,因为x被定义为final,不能被修改。

x=x+1;

}

}

4.自动数据类型转换------强制类型转换

不同的数据类型可以进行混合运算。在运算过程中,不同数据类型必须首先转换为相同的数据类型后才能进行运算。各种数据的转换原则是从低级向高级转换。具体如下:

char->byte->short->int->long->float->double

JA V A允许把高级类型转换为低级类型,我们通过强制类型转换实现。

class Test1

{

void f1()//自动类型转换

{

int nO=2;

float fO=2.25f;

//以下这行不能被正确编译,因为算出来的结果不可能是整数

//int iResult=nO*fO;

//正确

float fResult=nO*fO;

System.out.println("混合运算结果为:"+fResult);

}

void f2()//强制类型转换

{

int nO=2;

float fO=2.25f;

float iResult=(int)(5.5*fO);

System.out.println("强制类型转换结果为:"+iResult);

}

public static void main(String[] args)

{

code03 c3=new code03();

c3.f1();

c3.f2();

}

}

5.运算符和类型转换

+运算符和类型转换

+对于数字来说是求和运算。两个short类型数据相加,结果将被升级为int类型。

+对于字符串来说连接两个字符串的运算

class Test2

{

void f_add_string()

{

String a="hello ";

String b="world";

//请观察输出结果,体会字符串+字符串的功能

System.out.println(" a+b= "+a+b);

}

void f_add_number()

{

short x=1,y=2,z;

int p;

//错误代码。两个short类型数据相加,结果将被升级为int类型。而z却还是short类型z=x+y;

//正确代码

z=(short)(x+y);

System.out.println(" 1 + 2 = " + z);

p= x+y ;

System.out.println(" 1 + 2 = " + p);

}

public static void main(String[] args)

{

code04 c4=new code04();

c4.f_add_string();

c4.f_add_number();

}

}

6.JA V A允许在程序中调整数组中元素的个数

*********************************************************************/ class Test3

{

public static void main(String[] args)

{

int myArray[]=new int[6];

int i;

for (i=0;i

{

myArray[i]=i;

System.out.println(myArray[i]);

}

//重新定义数组,注意,myArry以前的内容被重置了

myArray=new int[10];

for (i=0; i

{

//重新定义数组

//myArray[i]=i*10;

System.out.println(myArray[i]);

}

}

}

7.数组

下列是一个常见的“冒泡排序”的程序,用于把几个数按大小进行排序

**************************************************************************/ class Test4

{

public static void main(String[] args)

{

//定义一个包含n个数的数组

int nArray[]={11,-5,100,56,321};

//JA V A是纯面向对象的语言,对于任何一个数组元素,JA V A都把它看做一个数组类型的对象,

//length是这个类的一个成员变量,它的值等于该对象中数组元素的个数。

//所以我们能通过nArray.length获得这个数组nArray里面包含元素的个数。

//对于本题,它等于5。

int size=nArray.length-1;

for (int j=0;j

{

for (int i=0;i

{

if (nArray[i]>nArray[i+1])

{

int tmp=nArray[i];

nArray[i]=nArray[i+1];

nArray[i+1]=tmp;

}

}

}

for (int i=0;i

{

System.out.println(nArray[i]+" ");

}

}

}

8.判断素数

class Test5

{

//判断一个数x是不是素数

public boolean is_sushu(int x)

{

for (int i=2;i

{

if (x%i==0)

{

return false;

}

}

return true;

}

//显示1到x之间的所有素数

public void disp(int x)

{

for (int i=1;i<=x ;i++ )

{

if (is_sushu(i))

{

System.out.println(i);

}

}

}

//程序入口

public static void main(String[] args)

{

code12 c12=new code12();

c12.disp(1000);

}

}

9.参数传递

* ①使用简单数据类型做为参数时的函数传值方式

* 当参数为简单数据类型时,参数传值使用复制传值方式,也就是说作为参数传进函数的值只是传进来值的一个副本

class Test6

{

public static void main(String[] args)

{

System.out.println("Hello World!");

int j=10;

//本例中calculate函数传递的是简单数据类型参数j,所以使用复制传递方式,函数中并

//没有改变原来j的内容

calculate(j);

System.out.println("======================================");

System.out.println("执行完calculate函数后j的值为:"+j);

}

static void calculate(int j)

{

for (int i=0;i<10 ;i++ )

{

j++;

}

System.out.println("calculate函数中j的值为:"+j);

}

}

* ②使用复杂数据类型做为参数时的函数传值方式

*

* 当参数为复杂数据类型时,参数传值使用引用传值方式,也就是说作为参数传进函数的值只是传

* 进来值的一个别名,直接效果就是函数中对参数做的修改直接就影响到原始的值

*

*/

class Test7

{

public static void main(String[] args)

{

String a="hello";

System.out.println("初始阶段数组a的值为:" + a);

calculate(a);

System.out.println("调用calculate函数后,数组a的值为:" + a);

System.out.println("由此可知,在本函数中,参数是作为复杂变量的别名传进函数的,证据就是在函数中确实改变了函数外部变量a的值");

}

static void calculate(String j)

{

j="world";

System.out.println("calculate函数中参数数组j的值为:"+j);

}

}

10.函数的返回值

*

* return语句的作用是把一个确定的值返回给调用它的语句,这个值可以是* 简单变量,也可以是对象。如果返回值是对象,则返回的实际上是对象的* 地址。这个情况和参数传递相同

*/

Class Test8

{

//求x*x+2(y+1)+3的函数

static float mathF1(float x,float y)

{

float z=x*x+2*++y+3;

//我们可以这样写返回值

return z;

}

static float mathF2(float x,float y)

{

//我们也可以这样写返回值(直接返回一个运算表达式的结果)

return x*x+2*++y+3;

}

public static void main(String[] args)

{

//System.out.println(a);

//我们可以这样获得返回值

float z=mathF2(4f,5f);

System.out.println("运算结果="+z);

//我们也可以这样获得返回值

System.out.println("运算结果="+mathF1(4f,5f));

}

}

11.函数的嵌套

*

* 函数自己调用自己叫做嵌套

*/

class Test9

{

static int i=0;

//这是一种不好的嵌套,在函数体中无条件的调用了自己。导致的结果就是无限的循环static void cout_line()

{

System.out.println("=============================");

cout_line();

}

//一种安全的嵌套,有条件的调用自己,不会导致死循环

static void cout_line2()

{

System.out.println("=============================");

i++;

if (i<10)

{

cout_line2();

}

}

public static void main(String[] args)

{

//请注释掉这个函数,因为它将导致死循环,函数永远不结束

cout_line();

cout_line2();

}

}

史上最全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 一章至五章考试 一. 填空题(8 分) 1. 面向对象的三大原则是( 封装),( 继承) 和( 多态).2 分 2. 如果想在对象实例化的同时就初始化成员属性,则使用( 构造函数).2 分 3. ( 实体) 方法和( 构造) 方法不能修饰为abstract ?2分 二.选择题(60 分) 1) 在Java 语言中,下列(a,d )是不满足命名规范的变量名。(选择二项) a) 姓名 b) $Name c) _instanceof d) instanceof 2) 下列Java 代码片段的输出结果是( a ) 。 char c='a'; int i=c; float f=i; byte b=(byte)c; System.out.println(c+","+i+","+f+","+b); a) 编译错误 b) a,97,97,97 c) a,97,97.0,97 d) a,97,97.0f,97 3) 下列Java 代码中,空白处的代码是(b,c )。( 选择两项) public interface Fee{ public float calLabFee(float unitPrice, float time); } public class FeeImpl implements Fee { public float calLabFee(float unitPrice, float time){ return unitPrice * time; } } public class FeeInterfaceTest { public static void main(String[] args){ ________________ Float labFee = fee.calLabFee(400.00,5); } }

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.360docs.net/doc/212783237.html,)编写了图像处理包image,那么按照SUN公司的建议,这个包的名称最好为_________________。 17.JAVA数据类型中,具体包括哪三种引用数据类型:___________、____________、______________。 18.JAVA程序以________为单位进行组织的。 19.如果没有显式的定义类的构造方法,则系统会为该类定义一个默认的构造方法,这个默认的构造方法的作用是_____________________________________。

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基础 1.什么是类?类是某一种事物的一般性的集合体,是相同的或相似的各个事物共同特性的一种抽象。 2.什么是对象?在面向对象概念中,对象是类的实例。对象与类的关系就像变量与数据类型的关系一样。 3.类的核心特性 封装性:类的封装性为类的成员提供公有的、缺省的、保护的、私有的等多级访问权限。目的是隐藏类中的私有变量和类中方法的实现细节。 继承性:类的继承性提供从已存在的类创建新类的机制,继承使一个新类自动拥有被继承类的全部可继承的成员。 多态性:类的多态性提供类中方法执行的多样性,有两种表现形式:重载和覆盖。 4.方法:对象中方法表达了对象所具有的行为。 5.属性:一个对象的属性是能够被外界或对象所处的环境所感知或操纵的数据或状态。 6.什么是Java?Java是一门易于编程的跨平台编程语言,同时又是一个开发、应用、执行和部署的平台。 7.为什么要有Java?Java与平台无关、一次编译处处运行、以及他的易于编程的特性。 8.Java开发程序的步骤?编写源代码(2)编译(3)执行 9.Java的环境变量 1)JAVA –HOME jdk的安装路径 2)CLASSPATH jvmclass字节码文件时的搜索路径 3)PATH 是系统的环境变量、命令的搜索路径 10.JVM :Java Virtual Machine 是一个逻辑的操作系统、它屏蔽了硬件和平台的信息、jvm能将字节码文件解释并执行、正 是这种独立执行的方式是Java 具有与平台无关的特性。 11.类的加载过程:类加载器加载字节码文件到存、jvm存数据区将对象状态放置在堆区、各线程使用的变量放在栈区、类的 特征放在方法区、然后进行字节码验证再执行。 12.常用的Java命令:Javac、java、javadoc、jar 13.类的语法与规 一个源文件只能有一个public的类 Public源文件可以有多个类定义 源文件名必须与public类名保持一致 包名必须放在第一行 包名可以有0个或1个但不能有多个 源文件如果带包的话最好存放在包结构对应的目录下 标识符程序语言用于标识变量名类名方法名的字符串就是标识符。 标识符必须字母下划线美元符开头大小写敏感。 类名要求首字母大写 方法名首字母小写每个单词首字母大写 常量名所有字母大写如果有两个或几个字母的联合用下划线连接 关键字:程序语言中、程序已经所有用户不能再使用的单词一般关键字都是小写 14 .数据类型:基本数据类型: 整型(byte、short、int、long)默认是int 浮点型(float、double)、默认是double 布尔型(boolean)、 字符型(char) 引用类型:类、接口、数组 15 .main()方法执行过程 1)先到方法区搜索student、如果搜索不到则去加载student的字节码文件 2)通过classpath查找对应的student字节码文件找不到就返回错误(ClassNotFound) 3)将字节码文件的二进制数据转换为class对象放置于方法区(class对象描述了student类的方法特征及静态成员等)加载完成 4)验证字节码文件

《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笔试题--基础很全有答案

第一组 1.下列不可作为java语言修饰符的是(D) A) a1 B) $1 C) _1 D) 11 2.有一段java 应用程序,它的主类名是a1,那么保存它的源文件名可以是(A) A) a1.java B) a1.class C) a1 D) 都对 3.整型数据类型中,需要内存空间最少的是(D) A) short B) long C) int D) byte 4. Java 类可以作为(C) A) 类型定义机制 B) 数据封装机制 C) 类型定义机制和数据封装机制 D) 上述都不对 5.在创建对象时必须(C) A) 先声明对象,然后才能使用对象 B) 先声明对象,为对象分配内存空间,然后才能使用对象 C) 先声明对象,为对象分配内存空间,对对象初始化,然后才能使用对象 D) 上述说法都对 6.在调用方法时,若要使方法改变实参的值,可以(B) A) 用基本数据类型作为参数 B) 用对象作为参数 C) A和B都对 D) A和B都不对 7. Java中(C) A) 一个子类可以有多个父类,一个父类也可以有多个子类 B) 一个子类可以有多个父类,但一个父类只可以有一个子类 C) 一个子类可以有一个父类,但一个父类可以有多个子类 D) 上述说法都不对 8.Java语言具有许多优点和特点,哪个反映了Java程序并行机制的特点?(B) A) 安全性B) 多线性C) 跨平台D) 可移植 9. Character流与Byte流的区别是(C) A) 每次读入的字节数不同B) 前者带有缓冲,后者没有 C) 前者是字符读写,后者是字节读写D) 二者没有区别,可以互换使用

10.以下声明合法的是( D ) A、default String s; B、public final static native int w( ) C、abstract double d; D、abstract final double hyperbolicCosine( ) 11.关于以下application的说明,正确的是( C ) 1.class StaticStuff 2.{ 3.static int x=10; 4.static { x+=5;} 5.public static void main(String args[ ]) 6.{ 7.System.out.println(“x=”+ x); 8.} 9.static { x/=3;} 10. } A、4行与9行不能通过编译,因为缺少方法名和返回类型 B、9行不能通过编译,因为只能有一个静态初始化器 C、编译通过,执行结果为:x=5 D、编译通过,执行结果为:x=3 12.关于以下程序代码的说明正确的是( D ) 1.class HasStatic{ 2.private static int x=100; 3.public static void main(String args[ ]){ 4.HasStatic hs1=new HasStatic( ); 5.hs1.x++; 6.HasStatic hs2=new HasStatic( ); 7.hs2.x++; 8.hs1=new HasStatic( ); 9.hs1.x++; 10.HasStatic.x- -; 11.System.out.println(“x=”+x); 12.} 13.} A、5行不能通过编译,因为引用了私有静态变量 B、10行不能通过编译,因为x是私有静态变量 C、程序通过编译,输出结果为:x=103 D、程序通过编译,输出结果为:x=102 13.以下选项中循环结构合法的是( C ) A、while (int i<7) { i++;

Java基础知识试题

第一章JA V A基础知识 §1.1 Java概述 1.完成在Windows 2000操作系统下环境变量的配置 2.创建一个Java程序,输出自己的基本信息:名字和年龄。 3.概述Java语言的版本发展过程。 4.简述Java语言的运行机制。 5.在自己的机器上用JDK开发运行环境完成第一个Java程序的编辑、编译、运行过程。6.简述Java语言的特点,Java虚拟机的概念及作用。 §1.2 java基本语法 1.什么是变量?什么是常量? 2.什么叫表达式,Java语言中共有几种表达式? 3.下面哪些表达式不合法?为什么? HelloWorld 2Thankyou _First -Month 893Hello non-problem HotJava implements $_MyFirst 4. 以下的选项中能正确表示Java语言中的一个整型常量的是( )。 A) 12. B) -20 C) 1,000 D) 4 5 6 5. 以下选项中,合法的赋值语句是( )。 A) a = = 1; B) ++ i; C) a=a + 1= 5; D) y = int ( i ); 6. 若所用变量都已正确定义,以下选项中,非法的表达式是( )。 A) a != 4||b==1 B) 'a' % 3 C) 'a' = 1/2 D) 'A' + 32 7. 若有定义int a = 2;则执行完语句a += a -= a * a; 后,a的值是( )。 A) 0 B) 4 C) 8 D) –4 8. 在Java语言中,逻辑常量只有true 和___________ 两个值。 9.Java语言中的浮点型数据根据数据存储长度和数值精度的不同,进一步分为float和 __________两种具体类型。

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基础面试题经典

第一阶段题库 基础知识部分: 1.JDK是什么?JRE是什么? a)答:JDK:java开发工具包。JRE:java运行时 环境。 2.什么是java的平台无关性? a)答:Java源文件被编译成字节码的形式,无论 在什么系统环境下,只要有java虚拟机就能运行这个字节码文件。也就是一处编写,处处运行。这就是java的跨平台性。 3.在一台电脑上配置java环境,path起什么作 用?如何配置? a)答:path的作用是在DOS环境下,能在任意 位置使用JDK目录中bin文件夹中的可执行程序,来编译执行java程序。 b)在环境变量中找到path变量,把bin文件夹 的绝对路径加上即可。 4.什么样的标识符是合法的? a)由字母、数字、_和$组成,长度不限。其中字 母能够是大写或小写的英文字母,数字为0到9。

b)标识符的第一个字符不能是数字。 c)标识符区分大小写。 d)标识符不能包含空格。 5.Java有几种基本数据类型? a)byte,short,int,long,char,boolean,float,double 6.什么是隐式类型转换?什么是显示类型转换? a)当将占位数少的类型赋值给占位数多的类型 时,Java自动使用隐式类型转换。 b)当把在级别高的变量的值赋给级别底变量时, 必须使用显示类型转换运算。 7.&&和&区别,||和|区别? a)&&和||是短路与,短路或,当左边的表示式能 判断当前结果,则不判断右边的表示式。 b)而& 和|则将两边的表示式都运算完毕后,再 算结果。 8.break,continue区别? a)break结束最近的一个循环,continue结束当 次循环,进入下次循环。 9.类的命名规则是什么? a)如果类名使用拉丁字母,那么名字的首写字母 使用大写字母。

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

J a v a编程基础知识点汇总及习题集答案 集团文件发布号:(9816-UATWW-MWUB-WUNN-INNUL-DQQTY-

目录 第一章 Java入门 (2) 第二章 Java基础 (5) 第三章条件转移 (14) 第四章循环语句 (20) 第五章方法 (26) 第六章数组 (33) 第七章面向对象 (42) 第八章异常 (63) 第一章 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、重点掌握两个程序 :Java编译器工具,可以将编写好的Java文件(.java)编译成Java字节码文件(.class); :Java运行工具,启动Java虚拟机进程,运行编译器生成的字节码文件(.class) 5、一切程序运行的入口public static void main (String args []){ World!”); } 课堂笔记

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.360docs.net/doc/212783237.html,ng.String? 可以,但在应用的时候,需要用自己的类加载器去加载,否则,系统的类加载器永远只是去加载jre.jar包中的那个https://www.360docs.net/doc/212783237.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.360docs.net/doc/212783237.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基础试题和答案解析

Java试题 1) java程序中,main方法的格式正确的是()。(选择一项) a)static void main(String[] args) b)public void main(String[] args) c)public static void main(String[]s) d)public static void main(String[] args) 2)给定java代码,如下: public byte count(byte b1,byte b2){ return______; } 要使用这段代码能够编译成功,横线处可以填入()。(选择一项) a)(byte) (b1-b2) b)(byte) b1-b2 c) b1-b2 d) (byte) b1/b2 3)在Java中,在包com.db下定义一个类,要让包com.util下的所有类都可以访问这个类,这个类必须定义为()。(选择一项) a)protected b)private c)public d)friendly 4)在Java中,下列()语句不能通过编译。(选择一项) a) String s= “join”+ “was”+ “here”; b) String s= “join”+3; c) int a= 3+5 d) float f=5+5.5; 5) 在Java中下列()方法可以把JFrame的布局管理器设为FlowLayout类型(选择一项) a)jFrame.setLayout(new FlowLayout() ); b) jFrame.addLayout(new FlowLayout() ) c)jFrame.setFlowLayout() d)jFrame.addFlowLayout() 6)给定java代码如下,运行时,会产生()类型的异常。(选择一项) String s=null; s.concat(“abc”); a)ArithmeticException b)NullPointerException c)IOException d)EOFException 7) 在java中,()对象可以使用键/值的形式保存数据。(选择一项) a)ArrayList b) HashSet c) HashMap d) LinkedList

相关文档
最新文档