JAVA第一阶段:基础设计结构---总结精髓

时间:2019-05-12 11:12:31下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《JAVA第一阶段:基础设计结构---总结精髓》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《JAVA第一阶段:基础设计结构---总结精髓》。

第一篇:JAVA第一阶段:基础设计结构---总结精髓

《JAVA语言 基础设计结构-----总结》

一. Java入门认识。

Java是一门面向对象编程语言,而C,C++面向过程,吸收了C,C++各种优点,摒弃之前难以理解的多继承、指针等概念而衍生出来的语言。

Java具有简单性、面向对象、分布式、健壮式、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序的等。

Java分为:

Java ME,平台微型版,应用于移动、无线及有限资源环境。如手机APP开发 Java SE,平台标准版,应用于桌面环境。如桌面软件开发

Java EE,平台企业版,应用于基于java的应用服务器。如WEB开发

计算机基础常识:

1.软件开发,分为系统软件与应用软件,开发就是制作意思。

2.人机交互方式,分为图形化界面(GUI)交互方式与命令行(CLI)交互方式。如:win下的DOS命令行。

Java 跨平台 特性:

一种与相关平台系统不一致的语言是不能够直接识别,通常都是通过搭建跨平台环境进行。

二. Java程序设计环境。

1.基本的开发工具包(JDK)

下载JDK  安装JDK  设置JDK路径  安装完成  环境变量配置 

使用文本编写、使用命令行窗口执行

具体操作可观看视频教学

2.使用集成开发环境工具包(Eclipse,NetBeans 等)

下载  安装  使用

具体使用可观看视频教学

三. Java基本程序设计结构。

关键字,标识符(自定义名称),注释,常量与变量(数据类型),运算符,字符串,语句,函数,数组

1.关键字

关键字定义:被JAVA语言赋予特殊含义的单词。特点:关键字所有单词字母都是小写。

如上图所示,/*….*/这符号内容是注释,蓝色部分是关键字,绿色部分是java创建好的类,而Demo是自定义class类的名称。自定义class类 名称为Demo {}里面的内容就是主函数。主函数 {} 里面就是执行输出语句,这就构成小程序的基本结构。2.标识符

标识符定义:

在程序中自定义的一些名称。由26个字母大小写、数字0到

9、符号_和$组成。(如Demo1、Demo_01、Demo02$等)

定义标识符规则:数字不可以开头,不可以使用关键字。

规范:定义时,要有代表性意义,提高阅读性。定义类名称时,第一个字母要大写,如多单词组成,每个单词字母需大写。(如类名FirstSample就遵守了规则同时也遵守了规范)

FirstSample.java这个文件叫源代码(java编程源代码,可编译)。

FirstSample.class这个文件叫字节码(java虚拟机可识别字节码文件,可运行)。注意:字节码文件名称与源代码里面定义的类名称是一致的。也就是说正常源代码编译通过 后,自动生成的字节码文件名称就是源代码里面定义的类名称。

3.注释

注释有三种方式:

第一种,行注释,每行前面标记 //。(格式如://注释内容)第二种,长篇注释,使用/*和*/将一段比较长的注释括起来。(格式如:/*注释内容*/)第三种,自动生成文档注释,这种注释以/**开始,以*/结束。(格式如:/**注释内容*/)

4.常量与变量(数据类型)

① 常量(表示不能改变的数值)

整数常量; 小数常量;

boolean型常量(只有true与false两个数值);

字符常量(将一个数字、字母或者符号用单引号(’ ’)标识); 字符串常量(将一个或者多个字符用双引号(” ”)标识); null 常量(只有一个数值null,表示什么都没有为空的数值)

对于整数常量表现形式常用有四种: 二进制(0,1满二进一)

八进制(0~7 满八进一,开头用0表示)十进制(0~9 满十进一)

十六进制(0~9,A~F 满十六进一,开头用0x表示)8个bit位为一个字节。

进制间的相互转化 十进制二进制;(除以2取余)二进制十进制;(乘以2取幂。)二进制八进制;(3个二进制位 转化成 1个八进制位)二进制十六进制;(4个二进制位 转化成 1个十六进制位)对于负数常量表现形式:

对应的正数二进制取反加1。

0000-0110

整数6

取反11111-1001

+ 0000-0001

整数1

---

1111-1010

负数-6 的表现形式

② 变量

变量概念(内存中的一个存储区域,该区域有自己的变量名称与数据类型,该区域数据可以在同类型中不断变化)

使用变量注意:变量的作用范围(一对{}内有效);初始值。定义变量格式:

数据类型 变量名称=初始值;(例如: int x=1;)数据类型:

字符串数据类型:String

例如Sting s=”星期”;

注意:整数类型long 的值有一个后缀L或者l(如:long x=40000L或者x=40000l)。

float 类型 的数值有个后缀F或者f(如:float y=3.14F或者是y=3.14f)。没有后缀的浮点值默认为double类型。当然也可以在double类型的浮点值后面添加D或者d。

数据类型转换:

自动类型转换(也叫隐式类型转换)例如:int x=3;

byte y=4;

x=x+y;强制类型转换(也叫显式类型转换)例如:byte x=3;

x=x+4;//这样的赋值运算不行的,如果非得强制性赋值运算这一步写成x=(byte)(x+4),虽然编译通过,但是运算记过数据会丢失一部分。类型的转换原理

表达式的数据类型自动提升

所有的byte类型,short类型,char类型的值将被自动提升为int 类型。如果操作数类型long,计算结果为long类型。如果操作数类型float,计算结果为float类型。如果操作数类型double,计算结果为double类型。

5.运算符

算术运算符(+,-,*,/,%(整数求余,称为取模))

注意:1.任何数 模以 2不是0就是1,可运用于开关运算

2.“+”与字符串相连,是连接符,不是运算符。(如:3+”2”,其结果是3和2,不是等于5;”5+5=”+5+5,其结果是5+5=55)

赋值运算符(++(自增),--(自减),+=,-=,*=,/=,%=)

注意:1.运算中,a=3时b=a++与b=++a的区别,b=a++其结果是b=3,a=4;b=++a其结果是b=4,a=4。如果独立运算,结果是一样的,参与其他运算时需要注意运算优先级。

2.(+=,-=,*=,/=,%=)赋值运算,其实就是左右两边的运算结果赋给左边。如:int a=4;

a+=2;//其实就是a=a+2 其他运算符以此类推。

比较运算符(>,<,>=,<=,==,!=,instanceof)

比较运算符的运算结果不是true就是false;instanceof检查是否是类的对象。

逻辑运算符(&,|,^,!,&&,||)

(与,或,异或,非,短路与,短路或)

用于连接boolean类型表达式。

&(与):规律,&运算两边有一边为false,其结果为false;两边都为true,其结果为true。|(或):规律,| 运算两边有一边为true,其结果为true;两边都为false,其结果为false。

^(异或):规律,^运算两边真假相同,其结果为false;两边真假不同,其结果为true。

&&(短路与):规律,和&运算结果一样,区别在于运算过程,&运算无论左边运算结果是什么,右边都参与运算,&&只要左边运算结果为false,右边不参与运算,直接得出结果false。

||(短路或):规律,和|运算结果一样,区别在于运算过程,|运算无论左边运算结果是什么,右边都参与运算,||只要左边运算结果为true,右边不参与运算,直接得出结果true。

!(非):规律,真假取反。!false=true;!true=false;!true=true;!false=true。

运算符(<<,>>,>>>,&,|,^,~)

(左移,右移,无符号右移,或运算移位,与运算移位,异或移位,反码)

直接对二进制位移位运算。

<<(左移):3<<2,3的二进制位数左移2位,其结果等于12。3*2*2=12 >>(右移):3>>1,3的二进制位数右移1位,其结果等于1。3/2=1 >>>(无符号右移):3>>>1,3的二进制位数无符号右移1位。

注意:>>(右移)和>>>(无符号右移)的区别在于,>>(右移)原来二进制位数高位是什么就补位什么(是0就补0,是1就补1),>>>(无符号右移)原来的二进制数高位是什么都用0补位。

&(与运算移位):6&3=2,6的二进制位数和3的二进制位数相与得出数据结果。|(或运算移位):6|3=7,6的二进制位数和3的二进制位数相或得出的数据结果。

^(异或运算移位):6^3=5,6的二进制位数和3的二进制位数相异或得出的数据结果。

注意:异或运算移位特性,一个数异或同一个数两次,其结果还是原来的那个数。其特性可应用于加密。如:6^3^3=6;10^3^3=10。

~(反码):~6=-7,6的二进制位数取反得出的数据结果。

三元运算符(条件表达式?表达式1:表达式2;)格式:

条件表达式 ? 表达式1 : 表达式2; 若条件为true,运算后结果为表达式1; 若条件为false,运算后结果为表达式2。

例子:取两个数中的大数。

int a=8,b=15,x;

x=(a>b)?a:b;

6.语句(程序流程控制)

判断结构(if语句)

注意:三元运算符就是if语句格式二的简写格式。但是三元运算符简化if语句格式二,在实际应用中是有局限性的,而if格式则是通用性质。

何时if语句格式二可以简化为三元运算符写法,就是当运算后有具体的结果时,才可以简化成三元运算符的写法。运算后不确定有没结果时,就通用if写法。

局部代码块作用,可以定义局部变量的生命周期(换句话就是腾出内存空间)。

选择结构(switch语句)格式:

switch(表达式)

{ case 取值1:

执行语句;bareak;case 取值2:

执行语句;bareak;…… default:

执行语句;bareak;}

注意:if和switch的应用

if:

1.对具体值进行判断。

2.对区间判断。

3.对运算结果boolean类型的表达式判断。

switch:

1.对具体值进行判断。(对具体值判断,建议使用switch语句,因为switch语句效率高)。

2.值的个数通常是固定的。if和switch相对而言,switch有应用的局限性,在特定的条件下才能体现出高效的应用。

循环结构(while;do while; for)

注意:循环结构的使用场景

1.无限循环最简单形式,while(true){},for(;;){}。

2.何时使用循环结构,当对某些代码执行很多次时可以使用循环结构。当对一个条件进行一次判断时,可以使用if语句;当对一个条件进行多次判断时,可以使用while或者for循环语句。

语句相互间的嵌套应用 大圈套小圈思想 练习提升

其他流程控制语句

break;//(跳出)

continue;//(继续)break应用选择结构和循环结构;continue应用于循环结构。

7.函数

函数就是定义类中具有特定功能的独立小程序,也称类的方法。格式:

修饰符

返回值类型

函数名(参数类型 参数1,参数类型 参数2,……)

{

执行语句;

return 返回值;//返回值 } 例如:1.public static void main(String[] args){ System.out.println(“Hello World!”)}

2.public static int add(int a, int b){

return a+b;} 注意:如果函数中没有具体值返回,那么格式中的return后直接加分号结束,关键字返回值类型为void。

函数应用(实现特定功能)需求(实现那些功能);思路(如何实现功能);实现步骤。

8.数组

数组就是同一种数据类型的集合,也称为数据的容器。

用处:数组可以给集合里面的元素进行编号,方便操作这些元素。

格式:

1.元素类型 [] 数组名=new 元素类型[元素个数或数组长度];

示例:int [] arr =new int [5];

2.元素类型 [] 数组名=new 元素类型[] {元素1,元素2,…….};

示例:int [] arr=new int[]{3,5,1,7};

int [] arr={3,5,1,7};二维数组 格式:

1.int[][] add=new int[3][2];//二维数组中有3个一维数组,每个一维数组有2个元素。2.int[][] add=new int[3][];//二维数组中有3个一维数组,每个一维数组初始值为null。

3.int[][] add={{},{},{}};//建立已知数组元素,已有3个一维数组,每个一维数组初始

值为null。

数组的栈内存与堆内存原理 数组的应用

排序法(选择排序、冒泡排序)查找法,二分查找、查表法、进制转换、二维数组以及多维数组

第二篇:JAVA基础总结

JAVA基础总结

转眼间,已经来到这里学习半年了,而现在我们对于JAVA学习才算是真正的开始。一开始接触的时候我发现这个和C语言的基本语法几乎一模一样的,老师说:JAVA语言本来就是C++语言发展过来的,而C++是从C语言发展来的,C C++ 还有JAVA虽然是不同的三种语言,但是其实他们的基本语法是一样的,但是它们却有巨大的区别,这个区别主要是体现在思想上。

都说C语言是面向过程的语言,C++ C#和JAVA是面向对象的编程,其实就是思维方式稍微改了一下子,面向过程的语言主要是着重于算法,面向对象着重于逻辑而已。

这个教我们的老师是张成峰老师,张成峰是个很负责的老师,虽然JAVA基础其实和C语言基础差不多,但是仔细学学还是能找出很多不同的细节的,于是大家的问题就很多,张老师几乎就是手把手的教我们,所以整体来说JAVA基础学得挺扎实的。

我在这本书的学习不是挺好,联系得少了,所以对代码也不是特别熟悉。而且JAVA是一门重概念的书,对于我来说,概念是我的要害,理论知识也是我最怕学习的,所以学习这本书对我来说很是艰难,听了很久的课,代码写得出来,但是理论知识几乎一点也不明白,结果就造成了这次笔试考的不好。

笔试考的不好,机试也因为我的粗心没有考好,所以这次的成绩不好。

学习JAVA基础后,还要在学习的过程中对每个知识都要用心和细心,当然最该注重的地方就是应该提高我对理论知识的学习,要多看书,也要多敲敲代码,这些就是提高学习知识全面的方法。

下一本书学习的是JAVAOO算是JAVA的一个重要的内容了,这才会真正的接触JAVA的核心课程,在这本书里我要好好的理解理论知识,仔细的学习每个知识。

第三篇:Java基础总结

 基本数据类型

 变量单元直接存放数据

 赋值和传参的方式:传值,即传递副本

 比较相等使用关系运算符“==”

 引用数据类型

 变量单元存放引用即对象地址,而数据(对象)在另一内存区域存放。

 赋值和传参的方式:传引用(传递对象的地址),即传递对象本身。

 使用关系运算符“==”比较两个引用类型变量,比较的是地址,如果比较结果为

真,说明两个变量引用了同一对象。

 比较两个对象是否相等应使用equals方法

 Java是面向对象的语言,开发Java程序就是开发Java类,Java的变量定义、方法(函

数)和语句都必须在类中书写,“无类即无Java”。

 类的实例成员

属性(成员变量):直接定义在类体中的变量(注:在方法或语句块中定义的变量不是属性)

方法:直接定义在类体中的方法。

类成员:直接定义在类体中的内部类,即类成员。

注:对象的成员是从属于对象的,必须通过对象访问,在Java中不存在脱离对象和类而独立存在的属性和方法。

 类、方法、语句三者的关系:

类中包含方法,方法中包含语句;方法中不能嵌套方法;语句不能直接写在类体中。

 变量的作用域

 局部变量-方法的参数、方法体中定义的变量、语句块中定义的变量,仅在所定义的方法体或语句块中有效。

 属性-在整个类体中有效。

 公有的属性-其它类可以本类对象访问。

 私有的属性-仅限本类内访问

 局部变量(无论基本类型还是引用类型)在栈内存中,对象在堆内存中。注:引用类型的局部变量内存放是对象的引用(即地址),而对象在堆内存中。

 方法的重载-在同一类中多个方法同名的语法现象,方法重载应符合以下条件:

 方法同名

 参数有所不同(即类型、个数和顺序三者至少有一个不同)

注:方法是否重载不考虑返回类型等其它方面。

 包和访问修饰符

 包-类的目录结构,主要用途是方便类的管理。

 类的简称:不含包名的类名

 类的全限定名称(类的全称):带包名的类名。

 访问修饰符

 private-仅限本类内访问

 public-任何类都能够访问

 默认-限本包的类访问

 protected--限本包的类访问和子类的访问

 类的成员(属性、方法和成员内部类)可以使用四种访问修饰符,顶级外部类仅能

使用public和默认两种修饰符。

 数组

 基本类型的数组的元素放的是数据

 对象数据的元素放的是对象的引用

 二维数组实际上是一个维数组,而其每个元素又是一个一维数组。

 构造方法-与类名同名并且无返回类型的方法

 构造方法的作用是创建对象,仅能通过new关键字调用。

 类中未显式定义构造方法时,类中会有默认的构造方法(即一个public、无参的构

造方法);类中一旦定义显式定义构造方法,将不再产生默认的构造方法。

 构造方法可以重载

 构造方法只能可以使用四个访问修饰符,不可以使用其它修饰符(如static、final

等)。

 this关键字

 this表示本对象或对象自身的引用

 通过this可以调用本类的成员方法和属性

 通过this可以调用本类的构造方法,this调用构造方法的语句必须写在构造方法的第一句。

 实例成员和静态成员

 类的成员(属性、方法和成员类)可划分为静态成员和实例成员。

 实例成员是属于对象的,随着对象的创建而存在,随着对象的销毁而销毁。 静态成员是属于类的,随着类的加载而存在,随着类的销毁而销毁。

 使用static修饰的成员是静态成员,未使用static修饰的成员是实例成员。 静态成员内不能使用this关键字。

 this表示当前对象的引用。

 对象的初始化

 第一:实例属性赋默认值

 第二:实例属性赋初值

 第三:执行对象初始化块

 第四:执行构造方法

 类的初始化

 第一:静态属性赋默认值

 第二:静态属性赋初值

 第三:执行静态块

 继承的基本概念

 Java仅支持单继承

  如果一个类没有显式继承任何类,则隐式继承java.lang.Object类  子类拥有父类的一切,子类对象由两部分构成:父类对象部分和子类个性化的部分。 子类并不能访问父类的一切:  子类可以访问父类的public成员和protected成员  子类不可以访问父类的private成员  仅当子类与父类同在一包时,子类方可以访问父类的默认访问控制的成员。继承与类和对象的初始化  构造子类对象时,首先构造父类对象,其次构造子类个性化部分,两者共同构成完整的子类对象,即首先进行父类对象的初始化,在初始化子类对象(个性化)部分。 子类构造方法的执行首先调用父类的构造方法。 若在子类构造方法中无显式调用父类构造方法的语句,则系统默认调用父类中可访问的无参的构造方法,如果这时候父类中恰好没有这样的构造方法,则编译出错。 在子类的构造方法中可以通过super关键字调用父类构造方法。这样的调用语句只能出现在子类构造方法的第一句。 关于初始化的顺序  初始化父类  初始化子类  初始化父类对象  初始化子类对象 继承与类型转换  子类型对象可以自动转型为父类型  父类型引用某个子类型对象时,可以强制转化为这个具体的子类型 方法重写  在继承的情况下,子类的实例方法与父类的实例方法的方法名称、参数、返回类型、throws声明完全一致,并且该子类方法的访问权限不低于父类方法的访问权限,即方法重写(子类方法重写了父类方法),也称方法覆盖。 方法重写仅存在于父子类中的实例方法,静态方法没有重写的概念。 当通过子类型对象执行重写方法时,将始终表现为子类的行为,而且无论引用对象的变量是父类型还是子类型,也无论是直接调用还是通过父类型其它方法间接调用,都将如此。 final修饰的方法不可以被重写  final修饰的类不可以被继承 隐藏成员变量  如果子类和父类中定义了同名称的成员变量,则称子类隐藏了父类的成员变量  通过父类方法访问隐藏的成员变量时,将获得父类成员变量  通过子类方法访问隐藏的成员变量时,将获得子类成员变量  通过父类型的引用直接访问隐藏的成员变量时,将获得父类成员变量  通过子类型的引用直接访问隐藏的成员变量时,将获得子类成员变量 super关键字

 super仅能用于子类中表示本对象的父对象部分

 super可以调用父类型的构造方法

 Super可以调用父类的成员

 Super不可以使用在静态上下文中

 Super不可以做为参数传递,不可以做为返回值返回。

 当方法重写时,或父类成员变量被隐藏时,子类中只能通过super访问父类方法和

父类成员变量

 final关键字

 用于变量,表示变量的值不可改变

 用于类,表示类不可被继承

 用于方法,表示方法不可以被重写

 关于final变量的初始化时机

 局部变量:声明的时候初始化

 实例成员变量:声明、对象初始化块和构造方法三处之一

 静态成员变量:声明、静态块两处之一

 抽象类

 抽象类可以包含抽象方法,也可以不包含抽象方法

 含有抽象方法的类必须定义为抽象类

 抽象类有构造方法

 抽象类不能够实例化

 通过抽象类可以调用其静态成员

 抽象类是需要由子类继承的,因此抽象类不允许是final类

 抽象方法

 抽象方法没有方法体,包括一对空的大括号也不允许有

 抽象方法必须是实例方法,抽象方法不允许是final的 抽象类与继承

 抽象类可以被继承

 若抽象类的子类是非抽象类,则该子类必须实现(重写)其父类的所有抽象方法  若抽象类的子类也是抽象类,则该子类可以不实现(重写)其父类的全部或部分抽象

方法。

 接口

 接口也是数据类型,可以将其理解为“纯”抽象类

 接口不是类,也没有构造方法,不能够实例化

 接口中的属性一律是public、static、final的,并可以省略这三个关键字

 接口的方法一律是public、abstract的,并且可以省略这两个关键字

 接口中可以不包含任何属性和方法

 接口与实现

 接口不是类,因此接口与类的关系不是“继承”关系,而是“实现”关系,我们可

以将实现理解为继承(尽管这并不恰当)

 如果接口的实现类是抽象类,则该实现类可以不实现接口的全部或部分方法  如果接口的实现类是非抽象类,则该实现类必须实现接口的全部方法

 一个类可以实现多个接口

 接口与继承

 接口之间可以相互继承

 一个接口可以继承多个接口

 接口与类型转换

 接口的的子类型对象可以自动向上转型为接口类型

 接口的子类型指:是接口的实现类或者接口的子接口

 如果变量引用的对象实际是某个接口的实现类对象,而变量的类型不是这个接口的子类型,那么则可以强制转换为这个接口类型。

 异常的类层次结构

 Throwable错误类,表示不可恢复的致命错误

 Exception运行时异常,此类异常可以不做显式处理

 非运行时异常catch

 声明抛出 在方法头通过throws声明可能抛出的异常类型

 异常机制的五个关键字

 try catch finally throw throws

 如何使用

 try-catch

 try-catch-finally注:只要try执行,其对应的finally块才必然执行

 try-finally注:只要try执行,其对应的finally块才必然执行

 throw 主动抛出一个异常

 throws 用在方法声明头部,声明方法可能抛出异常

 finally代码块多用于书写资源回收代码

 Java集合类(集合框架)

 Collection接口

 List接口 允许重复元素,元素有索引序号,并按放入元素的次序编号

 ArrayList 线性表结构,查找快,增删慢

 LinkedList 链表结构,查找慢,增删快

 Vector 同步,查找、增删性能都不高。

 Set接口 不允许重复元素,元素无索引编号

 HashSet 元素散列存放

 TreeSet元素按自然顺序排序(即从小到大排序)

 Map接口

 HashMap

 允许null值和null键

 不同步

 Hashtable <--Properties

 不允许null值和null键

 同步

 内部类

第四篇:《JAVA基础》基本概念总结

《JAVA基础》基本概念总结

1、在JAVA中所有万物皆对象,所有的代码都要写在一个类中,在类中只能包含属性(变量)和方法(函数),其它代码必须写在某一个方法中,方法与方法之间是平行的,不能在方法中定义方法。

2、如果一个类名使用了public修饰符,则包含该类的JAVA文件名必须该类名一样,一个JAVA文件中只能有一个类前面可以用public修饰符。

3、类是客观实体的抽象,包含属性(该类的数据),和对属性进行操作的方法,为了避免用户对类的属性进行误操作,我们一般把类的属性定义为私有的,并提供相应的get与 set方法去引用和修改这些属性。

4、类的属性与方法可以使用static修饰符,用static修饰的属性与方法是该类的所有对象所共享的,它们可以直接通过类名去引用,在静态方法中只能引用该类的静态变量与静态方法,因为非静态的属性与方法在该类没有被实例化之前是不存在的,即没有相应的执行空间,为了使用的方便,我们可以把不依赖于类的属性(即在方法中不对类的属性进行操作)的方法定义为静态的。

5、构造函数是当一个类被实例化时执行的一段代码,它决定了该类被实例化后的状态,其名称与相应的类名一样,并且不写返回值的类型,我们一般在构造函数中对类的属性进行初始化。当不写构造函数时,系统会给我们提供一个不带参数的空构造函数,如果我们写了一个带参的构造函数,系统就不再提供不带参的构造构数了。

6、为了引用一个类中定义的非静态属性与方法,我们需要实例化一个该类的对象,通过该对象去引用相应的方法。(这是我们实例化一个类的最直接的原因)

7、继承可以实现代码的复用,当子类继承了父类之后,子类就拥有了父类中定义的非私有属性与方法。

8、子类对象可以直接赋值给父类变量,但赋值后就不能通过父类对象去引用在子类中定义的方法了。如果子类覆盖了父类中的方法,则当子类对象赋值给父类后,通过父类去引用该方法时,执行的是子类中该方法的代码。

9、为了强制子类覆盖父类中的某一方法,可以在父类中将该方法定义为抽象的,如果一个类中含有抽象方法,则该类必须被定义为抽象的,抽象类不能被实例化。

10、接口是一种特殊的抽象类,在接口中定义方法全是抽象的,它定义了一种上层规则或协议,使实现该接口的不同类之间可以交互。

11、接口与抽象类可以定义变量,可以作为函数的参数,但传递给它的只能是实现该抽象类或接口中所有抽象方法的类的对象。

12、在JAVA中一个类一次只能继承一个类,但可以实现多个接口,这是接口存在的一个非常重要的原因。

13、在程序中,有些代码是不安全的,即在执行的过程中有可能会产生错误,为了处理这些错误,在JAVA中引入了异常处理机制,异常的处理分为抛出(throws)和处理(try…catch..),我们一般在写给其它地方用的方法中将有可能产生的异常抛出,而在main方法中,或实际使用时进行处理。

14、异常是一种带有强制性的业务规则,当一个方法将异常抛出后,我们在使用该法时就必须处理该异常,使用try…catch…可以将我们处理正常业务规则的代码与处理错误(即异常)的代码分割开来,使程序的结构更加清晰。写在try语句中的代码都是受保护的。

第五篇:JAVA基础知识点总结

1)开发Java语言的公司? Sun(Sun Microsystems)太阳微电子公司开发 2)

Java的3个版本?

J2SE(Java2 Standard Edition)标准版

J2EE(Java 2 Platform,Enterprise Edition)企业版 J2ME(Java 2 Micro Edition)微小版

在5.0以后新版本中称作:JavaSE JavaEE JavaME 3)

Java语言的几个主要特点?平台无关性:能运行于不同的平台上

安全性:去掉了指针操作,内存由操作系统分配 面向对象:利用类使程序更加利于维护

分布式:可以使用网络文件和使用本机文件一样容易 健壮性:检查程序编译和运行的错误 4)

Java的三大核心机制

虚拟机机制:利用虚拟机解释字节码执行java程序实现跨平台 垃圾收集机制:自动内存回收

代码安全性机制:加载代码后校验代码后再执行代码 第2章Java语言的开发环境 1)

JDK是什么?

JDK(Java Development Kit)Java开发工具包。包括了JRE,是开发Java的人员必备的开发运行Java程序的工具。2)

JRE是什么?

JRE(Java Runtime Environment)Java运行环境,运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。3)

JVM是什么?

JVM(Java Virtual Machine)Java虚拟机,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。4)

安装JDK的操作系统问题?

必须针对于不同的操作系统下载安装不同的JDK,例如windows下安装针对于windows的JDK,linux下安装针对于linux的JDK。

5)需要配置的相关环境变量? path:用于搜索外部命令,例如编译程序的javac命令,执行程序的java命令

classpath:用于搜索类,即class文件,例如可以在不同的位置执行类文件 6)

配置环境变量的方式? 有两种:临时配置和持久配置

临时配置:在命令行下用set 变量名=变量值,仅在当前命令行窗口有效

持久配置:在我的电脑——属性中配置,持久有效 7)可以编写Java程序的常见开发工具? 记事本,EditPlus,ULTRAEDIT,Eclipse,Jbuilder,NetBeans 8)

Java文件的类型?

有两种:

扩展名为java的文件:是Java源文件,属于编译之前的纯文本文件,存储java源代码。

扩展名为class的文件:是Java类文件,属于编译之后的二进制文件,存储字节码。9)

Java的编译运行原理?

首先编写java源文件,然后编译成class类文件,然后通过虚拟机解释成机器码到硬件执行。

10)Java是编译型语言还是解释型的语言?

既不是完全编译型,也不是完全解释型,是半编译半解释的。第3章Java程序的基本结构 1)

Java语言区分大小写吗?

区分,不管是数据还是标识符或者关键字都区分大小写,例如public不能写成Public,“abc”不能写成“ABC”,int i不能写成INT I等等。2)main方法是作什么用处的? 这是程序的入口方法,是由虚拟机自动调用的。

3)语句必须用分号结束吗? 必须的,但是代码块{}可以用分号结束,也可以不用分号结束

4)

Java中有几种注释,各自的功能

有三种:

单行注释//:加在行首只能注释一行 多行注释/* */:注释多行,但不能嵌套使用

文档注释/***/:用于生成HTML形式的文档,需要配合javadoc命令实现 5)Java语言的数据类型是强类型还是弱类型? 是强类型,意味着每一个变量都必须明确声明数据类型。6)

Java语言中数据类型的划分?有什么区别? 分成基本类型和引用类型两大类。

基本类型:有8种,只能存储单一的值,不以对象的形式存在引用类型:除了基本类型之外其他的都是引用类型,能够存储复杂数据类型,以对象的形式存在 7)

基本类型都有哪8种类型? 布尔类型:boolean 占1字节 字符类型:char 占2字节

整型:byte 占1字节 short 占2字节 int 占4字节 long 占8字节

浮点型:float 占4字节double 占8字节 8)

布尔值可不可以用0或者非0数代替?

不可以,布尔值只能是true和false,不能使用数字,这和C语言是不一样的。9)

直接写个整数10默认是什么类型的?

整型的直接量例如10,100等默认的数据类型都是int型 10)如何让一个整型的直接量变成long型的? 在直接量后面加大写L后者小写l,例如10L 11)整型数据在程序中直接使用可以使用什么进制? 10进制,8进制,16进制,但不能使用二进制 12)浮点运算在Java中有没有误差? 有误差,所以精密运算请使用BigDecimal类 13)直接写一个3.14的直接量是什么数据类型的?

是double型,如果想表示是float的3.14必须写成3.14F或者3.14f,double型的3.14也可以写成3.14D 14)char型采取的是什么类型的字符集?

是Unicode全球统一编码,支持任何世界上官方的语言中的字符

15)常见的转义字符有哪些? 转义序列 名称 b 退格 t 制表 n 换行 r

回车

” 双引号 ’ 单引号 反斜杠

16)常见的Unicode字符对应的编码?

大写的A到Z是对应65到90,小写的a到z是对应97到122,字符0到9是对应48到57

17)空字符是不是用’’(两个并列的单引号)来表示? 不是,空字符用’u0000’来表示,两个并列的单引号什么也不是。

18)点,分号,花括号的各自的作用?

点的作用有两个:一个是使用类或对象中的成员,用对象.成员,再一个就是包名和子包名之间的分隔符,例如顶层包名.子包名 分号的作用是表示语句结束 花括号的作用是代表一个语句块

19)语句和关键字之间可以有任意的空白吗? 可以的,例如System.out.println(100);就是正确的语句,但是关键字本身不能加空白或换行

20)标识符是什么?

标识符就是指在程序中给包,类,接口,方法,变量起的名字 21)标识符有什么起名规则? 1. 应以字母、下划线、美元符开头 2. 后跟字母、下划线、美元符或数字 3. 不能用关键字和保留字

4. 严格区分大小写 5. 名称长度没有限制 22)中文的变量名可以吗?

是可以的,例如 int 数字 = 10;这个语句是正确的。因为java中采取Unicode字符集,所以任何的Unicode中的字符都可以作为标识符的名称,但考虑字符集的支持问题推荐还是使用英文字母命名。

23)关键字和保留字有区别吗?

在1.5后没有区别,都被称作关键字,但是1.5之前认为关键字是在Java中有特殊用途的不允许编程人员擅自改作其他用途,而保留字是在Java中没有特殊用途但不允许编程人员擅自改作其他用途,按此说法goto和const应该是此意义上的保留字。

24)true,false,null可以用作标识符命名吗?

不可以,这3个虽然不是关键字,但都是有特殊用途的值,也不能作为标识符命名

25)一条声明语句可以声明多个变量吗? 可以的,例如以下声明都是正确的int i;int i,j;int i = 10,j;int i,j = 10;

int i = 10,j = 20;

26)变量在没有赋值的情况下可以使用吗?

不可以,变量没有赋值使用会报出变量未初始化的编译错误。27)常量有什么特点?

在声明变量的时候加上final修饰符即为常量,表示这个变量只能被赋一次值。

28)算数运算符有哪些? 基本算数运算符有+-* / % ++--

29)单目运算符,双目运算符,三目运算符都是什么意思? 其实也有叫一元运算符,双元操作符,三元操作符的,指的是

有几个操作数形成一个完整表达式,例如++就是一个单目运算符,只需要一个操作数就可以形成表达式,像i++,而+运算符就是双目运算符,需要两个操作数形成表达式,例如5 + 3,还有三目运算符,例如5 > 3 ? 0 :-1

30)++和--放在前面和放在后面有什么区别?

如果是在一个表达式中,那++放后面表示先运算表达式,然后再进行自增运算,如果在一个表达式中,++放前面,则表示先进行自增运算然后在运算表达式。--同样道理。例如: int i = 10;int j = i ++;//先进行赋值运算然后再进行自增运算j的结果是10

int i = 10;

int j = ++ i;//先进行自增运算然后再进行赋值运算

j的结果是11

31)-5 % 2等于几,5 %-2等于几?

-5 % 2等于-1,5%-2等于1,运算得到是正数还是负数取决于第一个操作数的符号 32)5 / 2 结果是不是2.5?

不是,是2,因为5和2都是int类型,所以不可能得到double型的结果。

33)比较运算符有哪些?

有><>=<===!= 六项基本比较运算 34)任何数据类型都可以使用> < >= <=运算符吗?

不是所有数据类型,例如true>false这个表达式就是编译错误,布尔类型和引用类型的表达式只能用==和!=两个比较运算,例如”abc” <= ”xyz” 这个表达式也是编译错误的 35)’a’ > ’b’这个表达式编译正确吗?

编译正确,’a’和’b’是字符类型,内部用Unicode编码表示的话a是97,b是98,所以实际上比较的是97>98,结果为false 36)逻辑运算符有哪些?

有 &逻辑与,|逻辑或,!逻辑非,^ 异或,&& 短路与,||短路或

37)逻辑与,逻辑或和短路与,短路或有什么区别? 逻辑与和短路与的区别是: 

如果是逻辑与&,不管第一个表达式是true还是false,都会执行第二个表达式,例如a > b & x < y,即使a > b为false,也会执行x > y 

如果是短路与&&,如果第一个表达式为false,将不会执行第二个表达式

例如a > b && x < y,如果a > b为false,就不会执行x > y

以此类推,逻辑或和短路或的区别是:

 如果是逻辑或|,不管第一个表达式是true还是false,都会执行第二个表达式 

如果是短路或||,如果第一个表达式为true,将不会执行

第二个表达式

38)与或非三个逻辑运算符的优先级是怎么排列的? “非”优先级最高,“与”其次,“或”优先级最低 39)原码,反码,补码分别是什么意思? 

原码:将数字转换为二进制,第一位为符号位,正数为0,负数为1

例如:12的原码是00001100-12的原码是10001100 

反码:正数的反码和原码相同,负数的反码将原码符号位之外的位逐位取反

例如:12的反码是00001100-12的反码是11110011 

补码:正数的补码和原码相同,负数的补码将反码加1 例如:12的补码是00001100-12的补码是11110100 最后强调一点,计算机存储数据用补码形式来存储。40)位运算符都有哪些?

&与 |或 ^异或 ~非 >>右移 <<左移 >>>无符号右移 41)1<<35怎么理解?

1是int类型是32位,所以需要把35%32=3,所以事实上是和执行1<<3等价的42)数据类型转换需要遵循什么原则?

小类型向大类型转换,是自动转换的,或者说隐式转换的 大类型向小类型转换,是需要强制转换的,或者说显式转换例如:byte b = 1;

short s = b;//自动转换

b =(byte)s;//强制转换

43)byte b = 10这个语句是正确的,为什么10是int型比byte大还不需要强制转换呢?

因为在java中做了特殊处理,其中规定byte,short,char类型可以直接赋予int类型的直接量,例如: byte b = 10;short s = 10;char c = 10;

以上赋值语句都是正确的。

但是不能超出超出类型的范围,例如以下赋值就是错误的: byte b = 128;

如果超出范围,必须得作强制转换,例如以下语句是正确的: byte b =(byte)128;

需要强调的是,必须是int类型的直接量,以下语句就是错误的: byte b = 10L;

10L不是int类型的直接量。

44)byte b =(byte)300;强制转换后的结果是44,是按照什么规律得出来的?

是先把300转换成二进制,然后根据byte类型的大小截取了后8个位

300的补码是00000000 00000000 00000001 00101100

b的结果是:00000000 00000000 00000001 00101100 结果为44 45)byte b =(byte)true;这个转换成立吗?

不成立,布尔值和数字是不兼容的,不能作任何转换。

46)int i =(int)“100”;这个转换成立吗?

不成立,引用类型和基本类型是不能直接强制转换的,需要用包装类的方法来转换。

47)char型和short型哪个比较大?

不能说哪个大,哪个小,这两个类型char的取值是从0~65535,而short类型的取值是-32768~32767,这个两个类型之间的转换都需要强制转换。

48)字符串是不是基本类型?

不是,String是java.lang包中的一个类,是引用类型的,8种基本类型中没有一个是String类型。49)空字符串用什么来表示?

用””(两个并列的双引号)表示,代表0个长度的字符串对象。50)String s = “”;和String s = null;有什么区别?

第一个表示s被赋值,指向了一个字符串对象,第二个表示s没有指向任何对象实例,是真空

51)两个字符串用什么运算符可以连成一个字符串? 用+运算符,例如”abc” + “xyz”最后的结果就是“abcxyz” 52)数学运算符加法和字符串连接符都是+,怎么区分? 是通过运算符两边的操作数来判断的,如果两边的操作数都是数字型的基本类型,则进行数学运算,如果两边的操作数有一个是字符串,则把另一个操作数也转换为则进行字符串连接运算。例如:+ 4 的结果是9 “5” + 4的结果是54

53)判断字符串内容相同用什么方法?

用equals方法判断内容相同,==只能判断引用是否相同 54)提供用户输入使用哪个类 使用javav.util.Scanner类

55)if语句可以用if(-1)形式判断吗? 不可以,数字不能代替布尔值

56)if语句和循环语句的花括号什么时候可以省略?

当执行的语句只有一句的时候 57)switch语句有哪些规则?

表达式expr的返回值必须是下述几种类型之一:int, byte, char, short或枚举常量;

case子句中的值必须是常量,且所有case子句中的值应是不同的,也必须是下述几种类型之一:int, byte, char, short或枚举常量

default子句是任选的;

break语句用来在执行完一个case分支后使程序跳出switch语句块;

58)对于退出循环break和continue有什么区别? break是退出整个循环

continue是退出当前循环继续下一次循环 59)声明数组创建数组的方法? 以下声明都是合法的: int [] a;int a[];String[] a;

以下创建数组对象都是合法的: int[] a = new int[3];int[] a = {1,2,3};int[] a = new int[] {1,2,3};

60)int[] x和String[] s这两个数组对象,哪个是基本类型,哪个是引用类型?

两个都是数组对象,都是引用类型的61)数组元素下标最小是多少,最大是多少,超出范围会怎么样?

最小是0,最大是数组元素个数减一,超出范围将会出现下标越界异常

62)得到数组长度用length属性还是length()方法? 是length属性,得到字符串长度才有length方法

63)声明int[][] a = new int[3][],a是一个二维数组,a[0]本身

是什么类型的?

二维数组的元素都是一维数组,a[0]是int[]类型的 64)数组的大小一经创建可不可以改变大小了? 不可以,数组是定长的,一经创建就不能再改变大小了 65)可以把2个int型,3个double型,4个String型的值放到一个数组中吗?

不可以,数组的元素类型必须是相同类型的。66)java中的多维数组必须是要形成矩阵排列吗? 不一定,也可以是不规则的。67)操作数组比较方便的实用类?

java.util.Arrays类提供了很多关于数组的实用方法。第4章对象和类 1)OOP是什么意思? Object Oriented Programming(面向对象编程)

2)

类和对象的区别?

类:对象的蓝图,生成对象的模板,是对一类事物的描述,是抽象的概念上的定义

对象:对象是实际存在的该类事物的每个个体,因而也称为实例 3)

类之间的3种关系? 依赖关系(uses-a)聚集关系(has-a)继承关系(is-a)4)

一个java源文件可以写多个类吗?

可以,但必须只能有一个公有类,并且文件名和公有类的类名相同。5)类中有哪些成员?

有属性(数据域),方法,构造器(构造方法)

6)

构造方法和普通方法的区别?

构造方法没有返回值,方法名必须和类名相同,需要用new语句调用构造方法。7)

普通方法可不可以也类名作为方法名?

是可以的,因为调用普通方法的语法和调用构造器的语法不一样。8)

一个构造器调用另外一个构造器需要用什么语法? 用this()语法调用另外一个重载构造器,需要注意的是调用语句必须是构造器中的第一句 9)

什么时候虚拟机会自动添加一个默认构造器?

当类中没有显式定义任何构造器的时候,虚拟机会自动添加一个无参的构造器

10)实例成员和静态成员的区别?

实例成员:是属于对象实例的,用对象.成员名称语法调用 静态成员:和对象实例无关,是属于类本身的,用类名.成员名称语法调用

11)静态初始化块statci{}的执行时机是什么时候? 在类被加载的时候,仅执行一次。

12)静态方法可不可以直接调用同一个类中的非静态方法? 不可以,静态方法不能直接调用一个非静态成员,需要用对象调用。

13)包是什么?

包实际上就是物理上的文件夹,可以把类放到不同的包中。14)把一个类放到包中,需要在类中加上什么语句? 需要加上包声明package语句,必须写在源文件的第一句。15)什么时候需要导入类?用什么语句?

当使用的类和当前类并不在同一个包中的时候,用import语句导入。

16)默认包中的类可以导入吗?

不可以,不在默认包中的类无法使用默认包中的类。17)java中哪个包中的类是自动导入的? java.lang包

18)什么叫做完整类名? 顶层包名.子包名.类名

19)静态导入语句有什么作用?

在使用类中的静态成员的时候前面不需要加类名前缀。

20)局部变量和全局变量的区别? 区别 局部变量 全局变量

声明位置 方法或块内部 方法外类内部 访问权限修饰符 没有访问权限 有访问权限

默认值 没有默认值

有默认值

使用形式 直接使用 对象调用

作用域

在方法或语句块内部 整个类

生命周期 进入方法或语句块创建退出方法或语句块销毁 随着对象的创建而创建随着对象的销毁而销毁

21)赋值语句赋给目标的是值还是引用?

如果是基本类型则赋的是值本身,引用类型则赋的是引用地址 第5章继承和多态 1)类的继承是谁继承谁?

是子类继承了父类,子类也称为派生类,父类也称为超类或基

类 2)子类继承了父类的什么东西?

子类可以继承父类的数据域(属性),方法,但构造器不能继

承 3)

私有成员能被子类继承吗?

能继承,但是由于访问权限的控制,在子类中不能直接使用父类的私有成员 4)

Object是什么类?

这个所有类的根类,任何类如果没有写显式的继承语句,默认都是直接继承Object类的 5)java中是单继承还是多继承?

是单继承,一个子类只能有一个父类 6)

访问权限修饰符有几种,访问的范围又是多大? 有四种:

private:私用 只能在被类中被访问 default:默认 只能被同一个包中的类访问

protected:受保护的 只能被同一个包中的类和不同包中的子类

访问

public:公有 可以被任何类访问 7)

覆盖方法的规则有哪些?

子类覆盖方法和父类被覆盖方法的方法返回类型,方法名称,参数列表必须相同

子类覆盖方法的访问权限必须大于等于父类的方法的访问权限

方法覆盖只能存在于子类和父类之间

子类覆盖方法不能比父类被覆盖方法抛出更多异常 8)

参数列表是否相同从哪几方面看?

从三方面看:参数个数,类型和顺序,需要注意的是参数的名字不相同是无所谓的 9)

覆盖方法的规则有哪些? 方法名相同

方法的参数类型,个数,顺序至少有一项不同 方法的返回类型和修饰符均不受限制

10)可变长参数的声明格式是什么?实际上是什么类型的? 类型 „ 变量,实际上是一个一维数组 11)this和super是作什么用处的?

this:本身代表当前的对象引用,可以用this.成员名称调用当前对象的属性和方法,如果属性和局部变量重名,可以用this.属性名和局部变量区分开。也可以用this()语法调用本类重载构造器。

super:本事是一个特殊关键字,可以用super.成员名称调用从父类继承的属性和方法,也可以用super()语法调用父类构造器。

12)super代表子类中的父类对象引用吗?

不,这个错误的说法,super不代表任何对象引用,仅仅是一个关键字

13)什么时候子类构造器会自动调用父类无参构造器? 当子类构造器中没有任何显式构造器调用的时候,即既没有this()调用也没有super()调用的时候

14)一个父类类型的引用变量可以引用一个子类的实例吗? 可以,这个引用变量是一个多态对象 15)多态对象有什么特点?

多态对象只能使用父类的成员,但如果多态对象使用了被子类覆盖的方法,则会动态绑定使用子类的成员,称为虚拟方法调用

16)引用类型之间的类型转换需要遵循哪些规则? 自动转换:从子类到父类的类型可以自动转换 强制转换:从父类到子类的类型要强制转换 无继承关系的类型转换是非法的 17)instanceof操作符是作什么用处的?

可以判断一个对象的类型是否是某一个类的类型或子类,也可以判断这个对象的类型是否是一个接口的实现类 18)toString方法什么时候会自动被调用?

在打印语句中传入引用类型的对象或者对象和字符串作连接时

19)默认的equals方法实现的是比较内容还是比较引用地址?

在Object中是比较引用地址。

20)覆盖equals方法和hashCode方法有什么规则? 必须保证当两个对象equals比较为true的时候,返回的hashCode相同,当比较为false的时候,返回的hashCode不同21)java中有几个包装类?

有8个包装类,正好对应8种基本数据类型。

分别是:Boolean Byte Short Integer Long Character Float Double 22)装箱和拆箱分别是什么意思?

装箱指的是把基本类型包装成包装类的引用类型 拆箱指的是把包装类形式的引用类型转换为基本类型 例如:

Integer objInt = new Integer(10);//装箱

int i = objInt.intValue();

//拆箱

23)JDK1.4和1.5的装箱和拆箱有什么区别?

自动拆装箱,例如: Integer intObj = 10;//自动装箱 int i = intObj + 5;//自动拆箱

24)final修饰符如何使用,使用了final修饰符有什么特点? final修饰符可以修饰类,方法,变量 final类为最终类,不能被子类继承 final方法为最终方法,不能被子类覆盖 final变量为常量,只能赋一次值

25)abstract修饰符如何使用,使用了abstract修饰符有什么特点?

abstract修饰符可以修饰类和方法 abstract类为抽象类,是不能创建对象的abstract方法为抽象方法,只有方法的声明,没有具体的实现 需要注意的是:

有抽象方法的类一定是抽象类 抽象类不一定有抽象方法

抽象类也有构造器,但不能创建对象实例 26)abstract不能和哪些修饰符配合使用? 不能和private,static,final一起使用 27)可以在非抽象方法中调用抽象方法吗? 可以,模板方法设计模式就是典型的这种调用 第6章 泛型程序设计 1)泛型的特点是什么? 主要特点是类型参数化,后期绑定数据类型 2)泛型支持基本类型吗?

不支持,只支持引用类型 3)如果没有传入类型参数,默认是什么类型? 默认是Object类型

4)泛型方法有什么特点?

将泛型参数声明在方法中,调用方法的时候绑定泛型 5)

泛型类声明泛型参数的时候,表示什

么意思?

表示绑定的类型必须是A类型后者是A类型的子类或实现类 第7章 接口和内部类

1)声明一个接口的关键字是什么? interface关键字

2)

接口中的成员有什么特点?

数据域必须是(public static final修饰)公有静态常量 方法必须是(public abstract修饰)公有抽象 没有构造方法 3)接口能创建对象实例吗? 不能,接口没有构造器,不能创建对象

4)

接口和类的关系?

接口和类之间是实现关系,一个类用implements语句实现了某接口,这个类被称为接口的实现类,一个类可以实现多个接口,一个类实现了某接口,必须覆盖这个接口中的所以方法,否则这个类必须是个抽象类 5)

接口和接口的关系?

接口和接口之间是继承关系,一个接口用extends继承另外一个接口,称为这个接口的子接口。一个接口可以继承多个父接口 6)

内部类如何定义?

一个类声明在另一个类的里面,这个类就被称为内部类,而外面的类被称为外部类 7)

内部类可以分成几种?

实例内部类:声明在方法外边没有static修饰符 静态内部类:声明在方法外边有static修饰符 局部内部类:声明在方法里边 8)

如何创建实例内部类的对象实例? 需要用外部类的对象来创建 例如: class A {class B {

}

}

如果像创建B类的实例,则必须用以下语句: A a = new A();A.B b = a.new B();9)

如何在实例内部类中访问外部类的成员?

在实例内部类中可以直接使用外部类的成员,不需要创建外部类的对象实例,但是如果在内部类中的成员名称屏蔽隐藏了外部类的成员(即外部类和内部类的成员名相同),则需要用“外部类名.this.成员名”访问外部类成员 第8章异常处理

1)异常的对象的根类是哪个类? 是Throwable类

2)

Throwable类有哪两个分支?

分成Error类和Excepion类两个分支 Error类表示严重错误

Exception类表示可以在程序中处理的错误 3)

Exception类有哪两个分支?

分成运行时异常和非运行时异常(已检查异常)运行时异常编译不检查,在运行时才会发生异常

已检查异常编译时就会作检查,不处理异常则通不过编译 4)如果在try块中发生异常,那么程序将会跳转到哪? 会跳转到catch语句块 5)catch语句可以用父类类型捕获子类异常吗? 因为有多态特点,是可以的6)处理异常代码finally语句会在什么时候执行? finally代码在任何时候都会执行,不管有没有发生异常。7)

如何声明已检查异常,由谁来处理这个异常? 用throws语句来声明一个已检查异常,由方法的调用者来处理这个异常 8)

如何抛出一个异常? 用throw语句抛出

9)如何创建一个自定义的异常类? 创建一个类,只要让它继承任何一个现有的异常类就可以了 10)覆盖方法对于异常有什么要求? 覆盖方法不能比父类方法抛出更多异常 第9章反射,代理,标注

1)

获得一个类型的Class对象有哪几种途径?

方法1:对象.getClass()方法2:类型名.class 方法3:Class.forName()2)

反射相关的类型都有哪些? Class 代表一个运行时类 Field 代表一个类的属性 Method 代表一个类的方法 Constructor 代笔一个类的构造器 3)

如何声明一个自定义标注? [<修饰符>] @interface <标注名>{ 返回值方法名称(); 返回值方法名称(); „„ } 例如:

public @interface MyComment { int id();String info();} 4)

java有几个内置标注? 有3个

@Override——用于修饰此方法覆盖了父类的方法,而非重载。@Deprecated——用于修饰已经过时的方法。

@SuppressWarnings——用于通知Java编译器禁止特定的警告。第10章 java常用类 1)

字符串String是可变类还是不可变类?

是不可变类,一经创建就不能修改其内容了 2)

字符串的常用方法有哪些? charAt方法:可以返回指定位置的字符 substring方法:可以截取子字符串 length方法:返回字符串长度 indexOf方法:查找子串的位置 lastIndexOf方法:反向搜索字串的位置 replaceAll方法:替换字符串 split方法:分解字符串

toLowerCase, toUpperCase方法:字符串大小写转换 3)StringBuffer类和String类有什么区别? StringBuffer是可变类,String是不可变类

4)StringBuffer类和StringBuilder类有什么区别? StringBuffer类是线程安全的,StringBuilder类是线程不安全的5)Math类主要提供了哪些方法?

Math类提供了大量的和数学运算相关的静态方法 6)Set集合和List集合共同的父接口是什么? 是Collection集合7)

Set集合和List集合有什么区别? Set: Collection的子接口,不记录元素的保存顺序,且不允许有重复元素

List: Collection的子接口,记录元素的保存顺序,且允许有重复元素 8)

ArrayList和LinkedList有什么不同?

ArrayList 的内部实现是基于内部数组Object[],所以从概念上

讲它更像数组

LinkedList的内部实现是基于一组连接的记录,所以它更象一个链表 结构,所以它们在性能上有很大的差别。ArrayList 随机访问比较块,但插入和删除元素比较慢 LinkedList但插入和删除元素比较快,但随机访问比较慢 9)

HashTable和HashMap有什么不同?

HashTable是线程安全的,HashMap是线程不安全的10)Vector和ArrayList有什么不同? Vector是线程安全的ArrayList是线程不安全的 第11章 IO流 1)

流分成哪两类?

按照单位划分分成字节流和字符流。按输入输出分成输入流和输出流 2)

和文件流相关的有那几个类? FileInputStream文件输入字节流 FileOutputStream文件输出字节流 FileReader文件输入字符流 FileWriter文件输出字符流 3)

文件流操作应该用字节流还是字符流? 如果是纯文本文件应该用字符流 如果是二进制文件应该用字节流 4)

文件操作用哪个类? 用java.io.File类 第12章 线程 1)

创建一个线程类的两种方式? 继承Thread类 实现Runnable接口 2)线程体应该放在哪个方法里面? run方法 3)启动新的线程用什么方法?

用start方法

4)一个线程对象能够用start多次启动吗? 不可以,一个线程方法只能start一次

5)线程有哪几种主要状态? 有四种,分别是:新生状态,可运行状态,阻塞状态,死亡状

态 6)

线程的同步需要用什么方法? 旧的方法是用synchronized关键字

新的方法是用ReentrantLock类的lock和unlock方法

下载JAVA第一阶段:基础设计结构---总结精髓word格式文档
下载JAVA第一阶段:基础设计结构---总结精髓.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    java基础总结大全(笔记)

    一、基础知识: 1、JVM、JRE和JDK的区别:JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性。 java语言是跨平台,jvm不是跨平台的。JRE(Java Runtime Environmen......

    Java学习_基础总结

    现在学习JAVA的人越来越多!但是学的好的,能用到工作中去的却很少很少,下面就是我为大家总结归纳的一些JAVA学习基础,希望大家少走弯路,尽快投入到工作中去! Java 学习基础总结归......

    基础结构验收总结

    总结报告 各位领导 今天我们汇集一起对铜梁县青少年活动中心工程进行地基与基础分部质量验收,首先我代表重庆隆西建设(集团)有限公司铜梁青少年活动中心项目部向各位领导、专家......

    Java基础知识点总结-Ch1

    Java基础知识点总结 第一章 Java语言概述 1.面性对象语言的基本特征。 Java语言的特点。最大优势。 Java语言是区分大小写的。 2.Java虚拟机的核心。 环境变量classpath设置......

    Java基础语法总结2

    Java基础语法总结2 三、运算符 Java基 本 的 运 算 符 按功能分有 下 面 几 类 : 1.算 术 运 算 符 (+,-,*,/,%,++,--) Java对 加 运 算 符 进 行 了 扩 展 ,使 它 能 够......

    Java基础学习知识点总结

    黑马程序员_毕向东_Java基础视频教程 Java基础学习知识点总结 2016年01月06日day01 一、基础知识:软件开发 1、什么是软件?软件:一系列按照特定顺序组织的计算机数据和指令的集......

    【黑马程序员】Java基础总结

    【黑马程序员】Java基础总结 黑马程序员的javaEE课程主要分为2个部分:java基础+java就业。今天就简单的给大家总结一下咱们java基础的知识。 注:Java采用Unicode符号集,每个......

    Java编程语言基础总结

    第一章初识Java 1.程序是为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令的集合。 2.Java包括编程语言和相关的技术。 3.Java主要用于开发,桌面应用程序和Int......