当前位置:文档之家› java课堂笔记(全部基础知识)

java课堂笔记(全部基础知识)

java课堂笔记(全部基础知识)
java课堂笔记(全部基础知识)

Java_U1课堂笔记

(一)初识Java

一、配置Java环境变量:

1、复制JDK安装路径,如:C:\Program Files (x86)\Java\jdk1.7.0_51\bin

2、粘贴到我的电脑->属性->高级系统设置->环境变量->Path

3、加上英文的分号

4、验证是否配置正确:dos-->java -version

进入DOS窗口的方法:

运行(或快捷键windows键+r)

二、Java程序编写三步骤:

编写.java

编译:javac **.java

运行java **

三、使用jad反编译工具:

DOS中切换至jad安装目录,如:C:\jad1.5.8g.win

输入命令:jad -s java D:\t01\HelloWorld.class

四、变量的使用:

变量

取名,命名规则

类型

数值:int、double、float(f)

非数值:char、String

类型名字= 值;

int age=10;

五、上机验证:

System.out.println(5+3);

System.out.println("5"+3);

六、Scanner的使用,接收用户键盘输入

Scanner

import java.util.Scanner;

Scanner input=new Scanner(System.in);

input.next();(相关方法,nextDouble()、nextFloat()、nextInt(等)bin:exe

jre

lib

src.zip

(二)数据类型

一、数据类型转换

自动类型转换:

int num=100;

double b=num;

强制类型转换

double num=100.9;

int b=(int)num;

二、运算符

赋值运算符=

算数运算符+ - * / % ++ --

+= -= *= /= %=

关系运算符> < >= <= == !=

逻辑运算符&& || !

条件运算符?:

了解优先级即可

三、流程控制

1、if:

基本if

if-else

多重if

嵌套if

注意:

条件是boolean值

常见错误:

if(num=5){

}else{

}

大括号不省略

多重if顺序问题

注意:

流程图的使用和问题的分析解决过程

2、switch

等值比较

注意:

(1)语法上的常见错误

(2)和多重if的异同

循环结构:

解决重复性的操作

简介高效

(三)循环结构

一:循环:

(1)while循环

while(条件){

操作

循环变量迭代

}

注意:

代码缩进

循环能否正常退出

(2)do-while循环

do{

循环

}while(条件);

注意:

代码缩进

循环能否正常退出

和while的区别:语法上、执行上(至少执行一次)

(3)for循环

for(变量初始化;条件;变量迭代){

循环操作

}

注意:

代码缩进

循环能否正常退出

执行顺序

循环变量可以有多个

二、双重循环

双重循环的特点:

外层循环进入一次,内层循环就要完整的执行一遍特点:

外执行一次

内执行一轮

双重循环次数:

外层循环次数*内层循环的次数

实现的重点:

(1)确定谁做外层循环,确定谁做内层循环

(2)两层循环变量有没有规律性的关系

1、打印图形:找规律

矩形

行i外层星星j内层

1 5

2 5

3 5

4 5

5 5

平行四边形

行i外层内层:空格星星

1 4=5-i 5

2 3=5-i 5

3 2=5-i 5

4 1=5-i 5

5 0=5-i 5

等腰三角形

行i外层内层:空格星星

1 4=5-i 1=2*i-1

2 3=5-i 3=2*i-1

3 2=5-i 5=2*i-1

4 1=5-i 7=2*i-1

5 0=5-i 9=2*i-1

2、打印九九乘法表

行i(1-9)第一个操作数i 第二个操作数(从1到i)三:循环应用

1、分析需求:

重复做一件事情

前提条件(循环进入的条件)

做什么事情(循环操作)

2、用代码解释

选择一种合适的循环结构

while

do-while

for

根据所选择的结构套用语法

while(条件){

}

do{

}while(条件);

for(循环变量初始化;条件;迭代){

}

3、容易出错的点

(1)变量在何处声明

例1:计算5门课平均成绩

例2:

for(int i=0;i<=6;i++){

System.out.println(i);

}

int j=i;

System.out.println(j);

(2)没有适当的(合适的)跳出循环

根本跳不出来

根本进不去循环

多或少循环了一次

四、循环的跳转

break:跳出整个循环

continue:跳出本次循环,进入下次循环return:结束方法(了解即可)

五、程序调试

设置断点

Debug->单步运行F5 F6

观察变量

(三)数组

一、数组

1、数组的基本使用

(1)数组的作用

一组相同数据类型的数

数组也是变量,内存中一串连续的空间(2)数组的几个基本概念

标识符(数组名字)

元素

下标:从0开始

数据类型

数组的长度(数组名字.length)

(3)数组使用步骤

声明数组

int[] num;

int num[];

分配空间

num=new int[8];

赋值

处理数据

int[] num={5,8,7};

int[] num=new int[]{5,8,7};

(4)循环和数组结合的使用

下标(0-数组.length-1)

遍历时两种方法:

方法一:传统for

方法二:

//增强型for(foreach)

for(int score:scores){

sum+=score;

}

二、回顾数组

变量,内存中一串连续的空间

相同数据类型的一组数据

数组的基本概念

元素

数据类型(数组类型)

下标(0,数组.length-1)

数组的长度:数组.length

数组的基本使用

声明数组(类型[] 数组名称或类型数组名称[])分配空间(数组名称= new 数据类型[5];)

赋值(num[0]= ;)

处理数据

变量:

基本数据类型

int、double、float、char、boolean

引用数据类型

String、数组

内存分布不同

使用上不同.

三、数组的典型使用

1、求最大值、最小值(打擂台)

2、插入算法(找位置)

3、冒泡排序

数组存储5个数字

下标:0 1 2 3 4

外层循环内层循环

i:0第一轮+ j比较次数:4 =4:length-1

i:1第二轮+ j比较次数:3 =4:length-1

i:2第三轮+ j比较次数:2 =4:length-1

i:3第四轮+ j比较次数:1 =4:length-1

i+j=数组.length-1

j=数组.length-1-i

共比较几次?

5个数字:4+3+2+1=10

6个数字:5+4+3+2+1=15

7个数字:6+5+4+3+2+1=21

n个数字:(n-1)+(n-2)+(n-3)+.....+1=n*(n-1)/2

4、Arrays类的使用

常用方法:

sort()

.....

记得查API帮助文档(帮助文档已经在网盘中提供了,如果大家在Oracle官网中没有下载,可以找中心的技术顾问老师提供网盘用户名和密码,登录后拿到帮助文档)

数据类型

基本数据类型

int double char boolean 。。。。

引用数据类型

数组

String

四:学习目标

二维数组

了解即可

存放数组的数组

会画内存分布

五:项目:DVD管理器

(a)需求了解是前提

(b)分析:

(1)数据主体:DVD。

多个DVD 数组

每个DVD有多方面属性几个数组

(2)分析具体的每个功能:

整体主菜单选择?选择结构(switch)

重复做主菜单的选择?循环结构(do-while)(3)对几个数组进行操作

新增DVD

确定在哪个位置加?name为空的第一个位置

一系列"加"的操作:name、state

查看DVD

遍历数组,输出信息的过程

输出非空的数组元素信息(if、break)

删除DVD

在非空的数组元素基础上进行以下操作:

获取用户输入

根据不同情况进行相应的删除处理(分支)有,但是借出去了

有,没有借出去

可以删

一系列“删”的过程

没有

借出DVD

在非空的数组元素基础上进行以下操作:

获取用户输入

根据不同情况进行相应的借出处理(分支)有,但是借出去了

有,没有借出去

可以借

一系列“借”的过程:

state、date、count

没有

归还DVD

获取用户输入

DVD名称

归还日期

判断

计算租金

退出DVD

整个程序的整体的流程控制

(c)确定开发顺序

初始化数据(已完成)

新增(已完成)

查看(已完成)

删除(已完成)

借出

归还

退出(程序整个流程控制)(已完成)

(d)程序出错了怎么办?

*:学着看程序的报错(异常)信息

经常出现的异常名称,大家要留意,尽量记住

根据异常提示的行号定位代码

不一定是改行代码的错误,有可能是之前代码导致改行出错

*:程序调试(DEBUG)-->观察变量

解决错误

你想不到的流程问题(或者:写一些输出语句)

六、整体项目回顾:

知识(技能点):

变量

运算符(赋值运算符、算数运算符、逻辑运算符、条件运算符、关系运算符)流程控制(顺序、分支(if(多重if)、switch)、循环、break)

数组(多个数组:下标)

能力:

遇到问题后的整体思路搭建的能力

分析需求

快速使用代码实现思路的能力

速度

准确度

代码测试或者调试的能力

排错的速度、排错的方法、准确度

代码规范性的能力

代码格式:缩进、对齐

变量命名规范

类名:帕斯卡命名规则

变量:驼峰命名规则

命名有意义

沟通、表达、团队合作能力

(四)面对对象

一:面向对象

1、面向对象

对象:具体的实体

属性(特征)

方法(操作)

二:类和对象

2、类和对象

类是一组具有相同属性和方法的对象的集合

类是对象的抽象,对象是类的实例(具体)

3、Java中的类:class

它是一种自定义的数据类型(引用数据类型)

public class Scanner{

.......

}

Scanner input=new Scanner(System.in);

public class 类名{ //类名:帕斯卡命名规则

//属性成员变量

//方法成员方法

}

4、使用类来创建对象:

类名对象名= new 类名();

对象名.属性;

对象名.方法();

类的成员变量可以赋初始值,也可以不赋值,如果不赋值,系统默认初始化类图:明白类图含义

Rose

visio

5、类和对象使用进阶

编写类

使用编写的类创建对象

方法的编写实现上

实现思路可以有多种,大家多尝试

熟练度要求

简单使用面向对象

6、类的方法

访问修饰符返回值类型方法名(){

方法体

}

6-1:访问修饰符public

6-2:返回值

无返回值void

有返回值:

返回值类型

return 返回值;

6-3:方法名同变量取名(有意义)

6-4:参数

方法名() 无参方法

public void show(){

}

方法名(参数) 带参方法

public void show(int i,String s,int j){

}

public void show(int i,String s){

}

(1)方法有没有参数和方法有没有返回值,是两码事,毫无关系

(2)带参方法,参数个数可以有一个,也可以有多个,多个参数之间用逗号隔开

(3)带参方法,参数名字可以随意取,符合变量命名规则

(4)方法定义处的参数叫形式参数(形参),

方法调用处传的值叫实际参数(实参)

(5)形参和实参名字可以不一样,但是数据类型要一样,个数要一样,顺序要一样

6-5:方法的调用

直接调用

new对象调用

7、方法传参

参数类型如果是基本数据类型

int double char boolean float。。。。

参数类型如果是引用数据类型

String 数组自定义的数据类型class。。。

基本数据类型传递的是值(拷贝),形参导致参数的变化和实参无关

引用数据类型传递的是地址,形参和实参指向的是同一个对象,形参导致的变化就影响了实参(实参也变化了)

8、构造方法

Student stu1=new Student();

stu1.**

stu1.**

(1)Student()应该是个方法,但是这个方法比较特殊,方法名字和类名一样。首字母大写了。类名() 构造方法:构造对象的时候使用(初始化对象时)

每个类都有一个默认的无参构造方法,即使你不写

public 类名(){}

注意:

构造方法没有返回值

构造方法名字和类名一样

(2)构造多个学员对象时,每次都要new一个对象,然后给对象属性赋值。比较繁琐

可以在构造对象时(构造方法)完成对象的属性赋值

有参(带参)构造方法

public Student(String name,int age,String major,int score){

https://www.doczj.com/doc/5a2881978.html,=name;

this.age=age;

this.major=major;

this.score=score;

}

9、this:当前对象

this.属性

this.普通方法()

本类构造方法的调用:

this(参数)

注意:这句话要写在第一句

10、方法重载

之前遇到的情况是:

同一个方法在一个类中不能出现一次以上:重复了

但是:

同一个类中能出现名字一样的,但是参数不一样的几个方法

特点:

这几个方法要在一个类中

这几个方法名字要一样

这几个方法参数项不同

参数类型

参数个数

参数顺序

11、成员变量和局部变量

public class Demo{

//成员变量

int age=10;

String name;

public void method1(){

int age=11;

System.out.println(age);

}

public void method2(){

System.out.println(age);

}

}

(1)成员变量:类的范围内声明的,在类的整个范围内都能用。也叫全局变量局部变量:局部(方法里、代码体里)声明,在声明的范围内使用,叫局部变量(2)局部变量在使用前必须赋初始值

全局变量即使使用前没有赋初始值,系统默认会初始化

(3)局部变量可以和全局变量同名,也可以不同名。同名的时候,就近使用12、封装

面向对象三大特性:封装、继承、多态

宠物-》健康值(health)出现了-1000 ?

把属性隐藏起来(health->private)

提供方法

完善方法,加上对属性的操作的判断

public

啥都没有

Private

1、分析常见的问题

(1)不会去写一个类,如何定义属性

main()方法

public class DVD{

name

state

count

date

}

//对DVD进行操作

public class DVDMgr{

DVD[] dvds=new DVD[30];

//新增

//查看

....

}

public class TestDVD{

}

(2)方法:

无参方法

带参方法?

不知道怎么写参数

返回值

调用过程(参数如何传递):调试、输出语句

public void method1(){

System.out.println(name);

System.out.println(age);

}

public String method2(){

return name+"\n"+age;

}

public int getSum(int num1,int num2){

int sum=num1+num2;

return sum;

}

public void getSum(int num1,int num2){

int sum=num1+num2;

System.out.println(sum);

}

//测试

demo.method1();

String s=demo.method2();

System.out.println(s);

(3)定义不止一个类的时候,类之间的关系

(4)对于概念不理解导致的操作问题public class Demo{

//发电

public void method(){

int num=0;

if(num>9){

}

}

}

(5)困惑

2、学习目标和学习方法

OOP

面向对象思想抽象

能听懂模仿写出案例

能自己解决简单问题

模仿

看别人写好的代码,思考

借助工具

看山是山、看水是水

看山不是山、看水不是水

看山是山、看水是水

三:封装

getter/setter

四:包机制

package 声明包;

import 导入包;

package作为程序的第一句话(除注释外)

import可以有一句,也可以有多句

*

具体类

同名类(通过完整限定名去区分,或者导入具体的包)关于系统包,要多查看帮助文档

1、访问权限修饰符

1-1 类的访问权限

public class Demo1 {

}

任何地方

class Demo1{

}

同包

1-2 类的成员访问权限(从小到大)

private:本类

默认修饰符:本类、本包

protected:本类、本包、子类

public :任何地方

2、修饰符static(投票)

(1)static修饰方法(静态方法)

可以直接通过类名调用

(2)static修饰成员变量(静态变量)

可以直接通过类名调用

(3)static修饰代码块(静态代码块)

static{

}

五:继承

解决了重用代码的问题

(1)定义父类

(2)定义子类,继承父类(extends)

单根继承,每个类只能有一个直接父类

关于构造方法

每个类有个默认的无参构造方法

但是,如果有其他(带参)构造方法,此时会覆盖掉无参构造方法

六:方法重写

父子类

方法同名、同参、返回值相同或是其子类、访问权限不能严于父类方法的访问权限

vs方法重载

同一个类

方法同名、参数列表不同(个数、类型、顺序)

和返回值、访问权限无关

七:Object类

是Java中所有类的父类

有几个常被子类重写的方法equals()

(1)equals()方法没有被重写之前,和==作用是一样的

(2)根据需求可以重写equals()方法

八:多态

同一个引用类型

Pet

不同的实例

Dog的对象、Penguin的对象

执行不同的操作

Dog的toHospital()、Penguin的toHospital() (JVM的动态绑定机制)

九:抽象方法

(1)普通方法

修饰符返回值方法名(参数列表){

方法体

}

(2)抽象方法

修饰符abstract 返回值方法名(参数列表);

拥有抽象方法的类必须声明为抽象类(abstract)

但是,抽象类中不一定非要有抽象方法

抽象方法在子类中必须被实现,除非子类也是抽象类

public class Pet{.....}

Pet pet=new Pet(); (正确的)

public abstract class Pet{.....}

Pet pet=new Pet(); (错误的)

抽象类不允许实例化

1、向上转型

Pet pet=new Dog();

可以调用子类重写父类后的方法

此时不能调用子类特有的方法

怎么办?

2、向下转型

父类引用变量指向的子类对象转换为具体的子类类型Dog dog=(Dog)pet;

在向下转型的过程中,如果:

Penguin penguin=(Penguin)pet;

实际运行中,会出现类型转换异常ClassCastException

怎么办?

使用instanceof判断一下

十:多态的应用

(1)使用父类作为方法的形式参数

(2)使用父类作为方法的返回值类型

十一:面向对象设计的步骤

1、分析需求

2、找名词(类、属性)

父类

汽车:品牌、日租金、车牌号

子类

轿车:型号

客车:座位数

汽车业务类

汽车租赁管理类

3、找动词(方法)

汽车(计算租金)

汽车业务类(初始化车、提供租赁服务)

汽车租赁管理类(入口和系统界面)

4、优化设计

父子类的关系:汽车(父)-->轿车、客车(子类)汽车(抽象类):计算租金-> 抽象方法

5、梳理运行过程

汽车业务类(MotoOperation)

初始化车->构造车(轿车、客车)

->构造这些车怎么存储?

->对象数组(MotoVehicle[])

(如果你不理解,那想想下面:

MotoVehicle moto1=new Car(....);

MotoVehicle moto2=new Bus(....);)

租车:

根据用户的租车条件去查找相应车辆,并返回相应车辆,用户的租车条件:方法的参数循环遍历汽车数组(MotoVehicle[])

拿到每一辆车(Car、Bus)

将车辆转换为自己实际的子类类型

instanceof

分别根据用户不同的条件进行比较

Car:brand、type

Bus:brand、seatCount

发现符合用户条件的相应车辆,返回

6、最后进行测试和调试

十二:总结

技能总结(面向对象:封装、继承、多态)

思路总结

团队合作

异常总结

ArraysIndexOutOfBoundsException

NullPointerException

ClassCastException

一、抽象类和抽象方法

抽象类不能被实例化,但是可以创建一个抽象类类型的引用变量,这个变量引用一个实例化的子类对象

静态绑定(成员变量、静态方法)

动态绑定(重写后的方法)

二、接口interface

public interface MyInterFace{

//变量:public static final

//方法:public abstract

}

public class MyClass extends Base implements MyInterFace,MyInterFace2{

}

三、异常

1、Exception

InputMismatchException:数据格式不匹配的异常

ArithmeticException:算数异常(/ by zero)

NullPointerException:空指针异常

2、传统处理

3、异常处理机制

try

catch(多重)

可以捕捉多种类型的

有顺序的(先子后父)

finally

不管怎样,都~

只有一种情况不执行,catch中System.exit(1);中断程序throw

手动抛出异常

throws

声明方法可能抛出的异常

跟在方法名后面写

可声明抛出多个异常,异常之间用逗号隔开

调用者可处理异常,也可继续抛出

Checked异常:

FileNotFoundException

IOException

四、动物乐园(项目)

1、需求

展示所有动物相关信息(名字、腿条数、叫)

用户选择,进行修改动物信息的操作(名字、腿条数)腿的条数输入有误的话,进行相应的异常处理

2、分析

名词:(类、属性)和动词(方法)

动物(父类)

属性:

动物的名字

方法:

接口

获得腿的条数

鸭子(子类)

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/5a2881978.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/5a2881978.html,ng.String? 可以,但在应用的时候,需要用自己的类加载器去加载,否则,系统的类加载器永远只是去加载jre.jar包中的那个https://www.doczj.com/doc/5a2881978.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/5a2881978.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按从小到大排列

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