java基础知识大全(必看经典)

java基础知识大全(必看经典)
java基础知识大全(必看经典)

第一讲 Java语言入门

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(图形用户界面)相比,明显小

很多

1.1.4健壮

?取消了指针算法

C的最关键的一个特性是它的强大指针算法,比如可以用指针访问字符串、数组甚至文件,很容易产生指针溢出,意外地改写内存和损毁数据。JAVA里有一个指针模型,对于普通的任务,如访问字符串、数组,根本不用指针,而一旦需要,比如访问对象、文件时,也可以获得指针的强大能力,但JAVA同时有高度的指针安全保障,用户永远不可能访问一个坏掉的指针、不可能造成内存分配错误,也用不着专门提防可能出现的内存漏洞。

1.1.5多线程

?强大的多线程能力

多线程可以使程序有更好的交互性和实时性,并可以最大限度地利用多处理器系统。JAVA有着强大的多线程处理能力,因为各主流操作系统平台在线程的实施方面有重大的差异,所以JAVA为不同的操作系统实现了专门的多线程机制。在这点上来说,JAVA没有做到平台无关。

a

Java简史

?首次亮相--1995年5月

Java技术起先是作为小型的计算机语言,用于消费类设备,比如有线电视交换盒等。因为这些设备的功能和内存均不足以运行大程序,所以程序要尽可能小;另外,由于不同的厂商可能选用不同的CPU,所以要求这种语言不能受限于任何一种独立的体系结构。1995年5月23日召开的SunWorld '95大会上,一种全新的浏览器(今天的HotJava的前身)亮相,标志着Java的诞生。

?开始流行--1996年1月

那时网景公司决定在加入对Java的支持,在1996年1月发布,从这一版本开始,所有Netscape浏览器均支持Java。注册了Java使用许可证的还有IBM、Symantec、Inprise和其他许多公司。就连微软,也加入了这一行列(尽管他们支持的Java和标准的Java稍有不同)。

?SUN的第一个JAVA版本--1996年初

Sun公司于1996年初发布了Java ,遗憾的是,还未摆脱其小型语言的影子,只适合用来做诸如网页上一个随机移动的文字之类的工作,并不适合用来做正规的程序开发。作为一种正规的编程语言,可以说,准备得很不充分。

?成熟--1998年

1998年12月,问世了。它是一个功能全面的、具有高度扩展能力的新版本。3天后,被改进成Java2,向"一次编写,到处运行"的目标前进了一大步。

?现状

JDK的安装与编程环境的设定

1.3.1 Java程序的开发过程

1.3.2 JDK的安装

1.3.3安装运行之后,应该首先设置JDK工具包所在的路径。

菜单栏的JDK-〉select JDK Directory-〉选择刚才安装的JDK路径-〉OK。

1.3.4 新建一个project

菜单栏的File->new projects->选择路径, 输入project的名字。

两个简单的程序示例

1.4.1 Java 应用程序:

?编写

新建一个.java文件。File-〉new-〉java file-〉输入一个名字:Hello-〉点creat file.出现了一个空的java文件。

?编译

JDK-〉compile 或者点击如演示所示的按钮。实际上是执行JDK工具包里的命令,与javac

G:\java2jiaocheng\example\teach1\是等价的。便已完成之后在同一个文件夹就会有一个同名

的.class文件。

?看编译结果,改错

错误举例:少写一个分号;录入错误;

?运行

JDK-〉Run classes-〉选择要运行的class,输入参数(这里,没有参数)或者点击如演示所示的按

钮。

一个有参数的例子

?看运行结果

1.4.2 Java Applet:

新建一个Java Applet文件。File-〉new-〉java Applet-〉输入一个名字:StarterApplet-〉出现了一个空的java文件和一个Html文件。

?编译

JDK-〉compile 或者点击如演示所示的按钮。实际上是执行JDK工具包里的命令,与javac G:\java2jiaocheng\example\teach1\ 是等价的。

注意不要隐藏文件的扩展名,否则给编译时带来麻烦!可以在工

工具/文件夹先项/查看/中修改!!

?看编译结果,改错

?运行

JDK-〉Test Applet-〉选择要运行的class,输入参数(这里,没有参数)

或者点击如演示所示的按钮

或者直接双击Html文件。

?看运行结果

如果获得帮助

1.5.1 下载帮助

JDK并不包含帮助文件,需要到网站上下载,里面有示例和说明。

1.5.2 使用帮助

敲入想查找的关键字,按回车。

编程的一些约定

注意:在一个原文件中只能有一个public 类!且文件名与public类同名!

1.6.1命名规则

类名与文件名应该一致,否则编译出错。比如,class Hello的文件名应该是

类名首字母大写,每个单词开头大写,其他用小写。比如:, 。

变量名用第一个单词用小写字母,第二个以后的单词首字母大写。比如:int myAge;

方法的名字第一个单词用小写字母,第二个以后的单词首字母大写,比如:getMyAge();

1.6.2 注释

/*

* Here is a block comment.

*/

表示完整的一段注释;

if (condition) {

/* Handle the condition. */

...

}

表示注释该行以下部分

if (a == 2) {

return TRUE; /* special case */

} else {

return isPrime(a); 1.6.3

?

法名(参数列表)。

比如:

如果方法有返回值,还可以把返回值赋值给一个变量。比如:

String s="Hello",

int len;

len=();

控制语句

Java语言的控制语句有2种:条件语句、循环语句。

条件语句:

条件语句有两种:if语句和switch语句。

?if语句:

if (条件)?

{代码块1}

else?

{代码块2}

如果条件为真,则执行代码块1,否则执行代码块2。

else部分是可选的,也就是说,可以没有else。

如果有else,则与最近的if结合:

?switch语句

switch语句是多分支的开关语句,它的一般格式定义如下:

switch(表达式)

{

case 常量值1:

{代码块1}

break;

case 常量值2:

{代码块2}

break;

……

default:

{代码块}

}

语句中表达式的值必须是整型或者字符型;常量值1到常量值n必须也是整型或者字符型。switch 语句首先计算表达式的值,如果表达式的值和某个case后面的常量值相同,就执行该case里的若干个语句直到break语句为止。如果没有一个常量与表达式的值相同,则执行default后面的若干个语句。default是可有可无的,如果它不存在,并且所有的常量值都和表达式的值不相同,那么switch 语句就不会进行任何处理。

需要注意的是,在switch同一个语句中,case后的常量值必须互不相同。

控制语句

Java语言的控制语句有2种:条件语句、循环语句。

条件语句:

条件语句有两种:if语句和switch语句。

?if语句:

if (条件)?

{代码块1}

else?

{代码块2}

如果条件为真,则执行代码块1,否则执行代码块2。

else部分是可选的,也就是说,可以没有else。

如果有else,则与最近的if结合:

?switch语句

switch语句是多分支的开关语句,它的一般格式定义如下:switch(表达式)

{

case 常量值1:

{代码块1}

break;

case 常量值2:

{代码块2}

break;

……

default:

{代码块}

}

语句中表达式的值必须是整型或者字符型;常量值1到常量值n必须也是整型或者字符型。switch

语句首先计算表达式的值,如果表达式的值和某个case后面的常量值相同,就执行该case里的若干个语句直到break语句为止。如果没有一个常量与表达式的值相同,则执行default后面的若干个语句。default是可有可无的,如果它不存在,并且所有的常量值都和表达式的值不相同,那么switch 语句就不会进行任何处理。

需要注意的是,在switch同一个语句中,case后的常量值必须互不相同。

循环语句:

循环语句,顾名思义,是反复执行的语句。比如,计算100的阶乘,1*2*3*...*100,就需要用到循环语句,不然,就要写一百遍乘法。循环语句需要特别小心,很容易陷入死循环,所以循环体的代码块里需要有能使循环结束的语句。Java有三种循环语句:while语句,do-while语句和for语句。

?while语句:

while语句的格式是:

while(条件)

{代码块}

当条件成立的时候,执行代码块,再检查条件,如果还成立,再执行代码块,……直到条件不成立。

比如,计算10的阶乘:

?do-while语句

do-while语句的格式是:

do{

代码块

}while(条件)

do-while语句和while语句的区别在于:while语句先检查条件,如果条件不成立,则不进入循环体;do-while语句先执行循环体的代码,再检查条件,如果条件成立,则在此执行循环体的代码。所以,do-while语句至少要执行一遍循环体的代码块。

比如,计算10的阶乘:

?for语句

for语句是Java语言中用得最多的循环语句。它的格式如下:

for(表达式1,表达式2,表达式3)

{代码块}

其中,表达式1完成变量的初始化,表达式2时布尔类型的表达式,是循环条件,表达式3是党执行了一遍循环之后,修改控制循环的变量值。

for语句的执行过程是这样的:首先计算表达式1,完成必要的初始化工作;然后判断表达式2的值,如果表达式的值为true,则执行循环体;如果为false,则跳出循环。执行完循环体之后紧接着计算表达式3,以便改变循环条件,这样一轮循环就结束了。第二轮循环从计算表达式开始,如果表达式的值仍为true,则继续循环;否则循环结束,执行for语句后面的语句。

比如,计算10的阶乘:

?嵌套循环

经常可以遇到嵌套循环的例子。所谓嵌套循环,是指一个循环体里还有一个或者更多个循环。比如计算10以内的阶乘之和,或者求50以内的素数,就需要用到嵌套循环。我们以求50以内的素数为例,说明嵌套循环的用法;求10以内的阶乘之和,将留作作业。

循环语句里的break语句和continue语句:

在循环体中,遇到break语句,那么整个循环语句就结束;如果遇到continue语句,那么本次循环就结束,就是说,不再执行本次循环中continue语句后面的语句,而是转入下一次循环。

变量的作用域

变量是由作用域的。所谓变量的作用域,是指一个变量在什么地方生效。总的来说,变量的作用域是声明它的块。所谓块,是指用一对花括号包围起来的任意数量的Java语句。变量只在声明它的块中有效,在这块以外,变量是无效的。

然而,不可以在两个嵌套的块中声明两个完全同名的变量。

注意,在C++中,这是允许的,内部定义会掩盖外部定义。这很容易造成错误,所以Java不允许这样做。

小结

这一讲,我们主要学习了Java的语句,主要是流程控制语句,包括条件语句和循环语句等。语句是程序的基本组成部分,是我们进一步学习Java的基础。希望同学们切实掌握好这部分内容,为我们的进一步学习打下坚实的基础。

习题

1.编一个计算1!+2!+…+10!的应用程序

应用程序计算100以内的全部质数

2.一个数如果恰好等于它的因子之和,这个数就称为“完数”,编写一个应用程序,求1000之

内的所有完数。

3.求45和的最大公约数和最小公倍数。

第四讲数组和字符串

什么是数组为什么要数组

除了基本数据类型,Java还提供一种导出类型:数组。数组是相同类型的数据按顺序组成的一种复合数据类型,通过数组名和下标,可以使用数组中的数据。下标从0开始。数组是所有编程语言中常用的数据结构。

为什么要数组呢我们来举一个例子。假设我们需要表示一个班50个人的数学成绩,要求求出平均成绩。如果没有数组,我们需要用前面学过的声明变量的方法,声明50个变量,写50次加法运算!数组可以大大地简化类似的问题!我们只要声明一个长度为50的整型数组,结合上一讲我们学过的循环语句,就可以很方便地解决这个问题!

在以前的编程语言比如C或者C++中,字符串也使用数组来表示的:字符串是字符数组!所以字符串与数组有着天然的联系。但是在Java中,提供了一种更方便的表示字符串的方法:用一个String类来表示。类是面向对象的语言特有的概念,对于初次接触面向对象技术的人来说,比较难理解。所以,这一讲,我们将学习表示字符串的String类,也对类的使用有一个粗略的了解,作为下一讲详细学习类的准备。

需要指出的是,C语言里的其他两种导出类型:结构体和共用体,在Java里已经被取消。

下面,我们来学习数组和字符串。

数组的声明、创建和初始化

1.数组的声明:

声明数组,包括声明数组的名字、数组包含的元素的数据类型。数组可以一维的,也可以是二维或者多维的。举例来说:一个班有50个人,我们用一个长度为50的一维数组表示;如果要表示每个同学的五门高考成绩,那我们就需要用一个第一维长度为50,第二维长度为5的二维数组。

声明一维数组有两种格式:

?数组元素类型数组名[ ];

?数组元素类型[ ] 数组名;

比如:int student[ ]; 或者: int[ ] student;

类似地,声明二维数组有两种格式:

?数组元素类型数组名[ ][ ];

?数组元素类型[ ][ ] 数组名;

比如:int score[ ][ ]; 或者: int[ ][ ] score;

下面,我们主要以一维数组为例,学习数组的用法。

2.数组的创建:

声明数组仅仅给出了数组名字和元素的数据类型,想要真正使用数组还必须为数组分配内存空间,也就是创建数组。在为数组分配内存空间时必须指明数组的长度。为数组分配内存空间的格式如下:

?数组名 = new 数组元素的类型 [ 数组的长度 ]

例如:student = new int [50];

score = new int [50] [4];

事实上,数组的声明和创建可以一起完成,比如:

int student [ ] = new int [50];

一旦数组被创建,数组的大小就不能改变。如果在程序运行期间,需要对数组的大小进行扩展,通常需要使用另一种数据对象:Vector。有关向量和扩展数组,有兴趣的同学可以在Java帮助中查找Vector 的帮助。

student数组创建之后,其内存模式如图:

3.数组的初始化:

创建数组后,系统会给每个元素一个默认的值,比如,整型数组的默认值是0。

我们也可以在声明数组的同时给数组一个初始值,我们称之为初始化。

int num [ ] = {2, 4, 4, 1}。

这个初始化动作相当于:

int num [ ] = new int [ 4];

num [0]=2; num [1]=5; num [2]=4; num [3]=1;

数组的使用

1.数组的访问

前面我们已经看到,数组通过下标访问数组元素,比如:student [ 0 ]=70,student [49]=87等。注意,下标从0开始,如果数组长度为n,则下标是0 ~ n -1,如果使用n或者以上的元素,将会发生数组溢出异常。比如:student[ 50 ] = 79,虽然编译的时候能通过,程序运行时将中止。

二维数组的使用与之类似。

2.数组的复制

可以把一个数组变量复制给另一个,但两个变量引用的都会是同一个内存空间,所以改变一个数组的值,另一个数组变量的值也会改变。

比如:

int num [ ] = {2, 3, 5, 1};

int numcopy[ ]=num;

numcopy[2 ]=5;

现在,num[2]也变成了5。

如果真的想把一个数组的所有值都复制到另一个数组中,就需要采用System . arrarycopy()方法:System . arrarycopy ( num, 0, numcopy, 0, 4)。这样,num和numcopy将指向不同的内存空间,numcopy的值的改变,不会在影响num。有兴趣的同学可以参考帮助文件。

字符串

前面已经说过:Java使用包中的String类来表示字符串,尽管我们可以用字符数组来实现类似的功能。关于类的详细知识,我们下一讲将会讲到。由于类是面向对象编程语言最核心的概念,学习起来有些难度,我们在这里先通过String类对类的概念有一个粗略的了解,以使我们下面的学习更顺利一

些。

字符串,顾名思义,就是一串字符。比如:"student100", "China"等。用一对双引号表示字符串。我们也可以把字符串看成字符数组(事实上,C就是把字符串当作字符数组来处理),但是把它视为类更方便一些。为什么我们下面马上会看到。

?字符串的声明、创建

字符串声明的格式是: String 字符串名

比如:String s;

字符串的创建格式:字符串名 = new String(字符串常量)或者字符串名=字符串常量

比如:s = new String ( "student" ); 或者:s = "student";

声明和创建可以一步完成,比如:String s = new String ( "student" ); 或者 String s = "student";

大家是不是觉得:String这个类的声明,跟前面我们学过的基本数据类型的声明的格式是一样的,比如:整型的声明:int n; 比较一下: String s;

事实上,

类型变量名

这种格式是类的声明的一般格式,你可以把类当作基本数据类型一样来声明。

另一方面,

变量名= new 类名(参数列表);比如 s = new String ( "student" );

这是类的一般创建格式。

与字符串有关的操作

?字符串的长度

length()方法:

String s = "student";

int len=();

需要指出的是,()这种调用方法,是面向对象编程语言特有的方法,我们把s叫做String类的对象,就像int n,我们把n叫做整型变量一样;把length()叫做String类的方法。下面我们可以看到,String

类的方法,都是通过对象名.方法名()这种方式调用的。

?取子串

String s = "I am a Chinese";

String subs;

subs = (7);

?字符串的比较

String tom = "my name is tom";

String jane = "my name is jane";

(jane);返回false。表示不相等

(jane),返回一个负整数,因为第一个不相等的字符t和j相比,t在j的后面;如

果返回0,表示相等;如果返回一个正整数,表示tom和jane第一个不相等的字符,

tom的在jane的前面。

注意,不要用tom= =jane判断两个字符串是否相等,因为这样的话比较的是它们在内存中的地址是否相同,而不是我们所希望的比较字符串的内容是否相同。

?字符串连接

String s = " I am";

String s2 = "a Chinese";

String s4, s4;

s4 = s+s2;

s4=s + 24;

整数型24将会自动转换为字符串。

?字符串检索

字符串检索是指判断一个字符串是否包含某一个字符或者子字符串,如果有,返回它的位置,如果没有,返回一个负数。

String s = "I am a Chinese";

("Chinese" ),返回7;

('a'); 返回2;

?字符串转换为数值

如果一个字符串是一串数字,可以把它转换成相应的数值。

o转换为整型:

String s = "21";

int x; x= (s);

o转换为浮点型

String s = "";

float f; f = (s).floatValue();

o当然,也可以把整数或者浮点数转换为字符串类型:

String s;

int n = 24;

s = ( n );

o其他

与字符串有关的方法还有很多,我们不可能一一讲解。前面我们说过,我们要学会使用帮助。我们查找关于String的帮助,就可以看到,有关于String的所有方法的详细讲解。希望同学们可以学会使用帮助。

小结

这一讲,我们学习了数组的一些知识,并通过String类,一方面学习了字符串的使用,另一方面先对类的一些概念和用法,比如类的方法调用,有了一些粗略的了解。

数组是我们经常要用到的数据结构,它是一种导出型的数据结构,对我们处理大规模的数据,有很大帮助。

前面我们说,用String类表示字符串,比我们自己用字符数组来做更方便。因为String类为我们提供了很多现成的可以直接使用的对字符串的操作方法。比如substring( ),equals( )等方法。如果我们要用字符数组来完成与substring类似的功能,就只能自己把子串的每一个字符复制到另外一个

字符数组中;与equals()类似的功能,就只能自己一个一个字符地检查两个字符船是否相等。提供对自己的成员数据的完整的操作方法,也就是把数据和对数据的操作封装起来,是类的最大的好处。如果现在还不能理解这句话,不要紧,我们现在只需要知道:使用String类这种方法,非常方便。

习题

1.声明一个数组,存一个学生的五门成绩。求该学生总成绩、平均成绩。

2.将一个数组中的值按逆序重新存放,例如,原来顺序为:9,5,7,4,8,要求改为:8,4,7,

5,9。

3.编写一个应用程序,连接两个字符串:“I am”和“a student”,并求出第7个字符是什么

找出“am”在该字符串中的位置,最后把所有字符都变成大写字符。

4.统计一个字符串中字母、空格和数字的个数。

第五讲:类、对象和接口(1)

什么是类

上一讲我们使用了一个String类,我们说过:类把一类对象的成员函数和方法封装起来,使用起来很方便。那么,什么是类呢要理解类,我们先来了解"对象"的概念,因为类就是用来创建对象的模板,它包含了被创建的对象的状态描述和方法定义。

我们可以把长虹牌电视机看成是一个对象。我们不必关心电视机里面的集成电路是怎样的,也不用关心电视机的显像管的工作原理,我们只需要知道电视机的遥控器上提供了对这台电视机的什么操作,比如选台、调节色彩、声音等。这样,我们虽然不知道电视机内部是怎么工作的,但我们可以使用这台电视机。听起来这跟编程没什么关系,但面向对象的思想正是与它类似:对象,对外只提供操作该对象的方法,内部的实现对外是隐藏的。我们把这种技术叫做数据隐藏。这样,程序员不必了解一个对象内部是怎么实现的,但可以很方便地使用这个对象。

类,就是对象的模板。比如,电视机是一个类,而某一台电视机就是这个类的一个对象,也叫一个实例。

我们前面使用的String类,虽然我们不知道,也不必知道里面的实现细节,但我们只要知道他的操作方法,就可以很方便地使用它。这样,对别的程序员编写的程序,我们可以很方便地拿来使用,从而提高软件的复用程度和编程的效率。

比如,我们构造一个类:TV,然后对外提供一些对它的操作方法,选台 selectChannel( )等。然后用这个类创建一个对象:TV kongKai;然后就可以这样操作这台电视:。

类的另一个特性,也是它的一个大好处,是继承。继承的概念类似于这样一种表达:电视是一种电器。如果我们有一个电器类,那么,我们说,电视机类继承了电器类。继承有什么好处呢设想电器类有一些属性,比如工作电压,功率,有些一些方法,比如:打开 open( ),关闭:close( )。这时候,如果电视类继承了电器类,电视类就自动拥有了电器类的这些属性和方法,而不用再自己重写一遍(当

然,如果想重写,也可以,我们把这种技术叫做重载)。这样做有什么好处呢最明显的好处就是减轻编程的工作量。假设我们有令一个类:VCD类,它也继承了电器类,对于打开关闭等,同样不用重新编写。

好了,既然面向对象的方法有这么多好处,我们下面就来学习类和对象的一些基本知识。

一个例子

下面是一个完整的类的例子,我们用这个例子详细讲解类的一些用法。

class Employee

{?

private String name;

private double salary;

private int hireYear;

private static String company=new String("IBM");

public Employee(String n, double s, int d)

{ name = n;

salary = s;

hireYear = d;

}

public void print()

return;

}

public void raiseSalary(double byPercent)

{ salary *= 1 + byPercent / 100;

}

public void raiseSalary(int byAbsolute)

{ salary +=byAbsolute;

}

public int getHireYear()

{ return hireYear;

}

public static String getCompany()

{

return company;

}

}

为了测试这个类,我们写了一个测试程序:

package teach4;

public class EmployeeTest

{ public static void main(String[] args)

{ Employee emp = new Employee ("Tony Tester", 38000, 1990);

();

;

();

int raise=1000;

(raise);

();

}

}

类的结构

class Employee { } 表示一个类的声明,其中,class是关键字,Employee是类名。在一对大括号中的内容,我们叫做类体,是这个类的实现部分。

前面我们说过,类把数据和在数据上的操作方法封装起来,所以,类体中有两部分,一部分是数据,另一部分是方法。

数据部分是:

private String name;

private double salary;

private int hireDay;

分别是String类型的name,代表该员工的姓名,double类型的salary,代表该员工的薪水;int类型的hireDay,代表该员工的雇佣年份。

private是一个关键字,是私有的意思,表明这些数据,只能被类里面的方法访问,外部程序是不能直接访问这些数据的。这正是类的一个好处:对外隐藏数据。我们建议,始终保持数据的私用,也就是始终用private来修饰数据,来是我们的程序更安全。

这个类的方法部分是:

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*30=30)(题目写在答题纸上面) 1:Java 提供哪几种运算符多选( abcd )。 A)算术运算符B)位运算符 C)关系运算符D)逻辑运算符E)条件运算符 2:https://www.360docs.net/doc/c5824774.html,ng包的()方法比较二个对象是否相等返回true.。(b) A:toString() B:equals() C:compare D:以上都不正确 3:下列对Java 的变量与函数说法正确的是多选(ace )。 A)变量是用来保存数据的B)变量是用来实现操作过程的C)函数是用来实现操作过程的D)函数是用来保存数据的E)函数的参数是数据的入口 4:已知:int[] a = new int[100];在下列给出的数组元素中,非法的是。(d) A:a[0] B:a[1] C:a[99] D:a[100] 5:在java中,一个类可同时定义许多同名的方法,在这些方法的形式参数个数,类型或顺序各不相同,传值也可以各不相同。这种面向对象程序的特性称为。(c) A:隐藏B:覆盖C:重载D:Java不支持此特性 6:()是一组常量和抽象方法的集合。(d) A:实例B:类C:包D:接口 7:下面关于数组说法正确的是多选(abcde)。 A)一维数组实质上是相同类型变量的列表 B)创建一个数组首先定义数组变量所需的类型 C)char c[]=new char[26];可声明一个含有26 个元素的char型数组 D)当为一个多维数组的时候分配内存时,仅需要为第一指定内存,然后再分配其他维的存E)int twain[][] = new int[4][5];可声明一个二维数组 8:Java源文件和编译后的文件扩展名分别为。(b) A:.class和.java B:.java各.class C:.class和.class D:.java和.java 9:设x=5;则y=x--和y=--x的结果,使y分别为。(c) A:5,5 B:5,6 C:5,4 D:4,4 10:若x是float类变量,x=10/4;则x 的值是。(b) A:2 B:2.0 C:2,5 D:编译错误 11:.下面方法中,用于调度线程使其运行的是?多选(bc ) A. init() B. start() C. run() D. resume() E. sleep() 12.下面哪种情况能实现自动转换多选(ace )。 A)byte 型转换成int 型B)int 型转换成byte 型 C)float 型转换成double型D)double 型转换成int 型E)char型转换成int 型 13:下列那些是正确的JAVA字符串?多选(abd )。 A. "\"\"" B. "Oxzabc" C. "\"\" D. "\t\t\r\n" E. "boolean"5 14:在使用super 和this关键字时,以下描述正确的是。(a) A::在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过 B:super()和this()不一定要放在构造方法内第一行

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基础学习心得笔记 对于很多只会C语言的初学者而言,面对java基础语法学习,反而感觉很难,其实其中最大的问题不是语法难,而是一种编程思想的转变。面向过程就是把你的代码封装成函数,然后依次去做一件事情,面向过程是把你要做的事情抽象成对象,告诉对象去做。所以要想学好java入门,必须知道类和对象的概念。 类是对生活中事物的抽象描述,比如人类,动物类,交通工具类;对象即是对类的具体实例化,比如张三是人,猫是动物,飞机是交通工具(对象-----类)。Java基础入门学习路线可以总结为四步走: 1.java开发环境的搭建; 2.java初级之基础语法学习(80%类似C语言); 3.java中级之面向对象编程学习(重点); 4.java中级之应用编程学习。 第一步:JDK软件开发包时java软件开发环境, 包括jre运行环境和jvm虚拟机,在oricle官网下载javaSE版本JDK包;配置好环境变量就可以使用了。 第二步:java初级语法学习, 1.基本数据类型整形,字符型,字节型,长整形,短整形,浮点型,双精度,布尔型;

2.运算符+,-,*,/,%等; 3.控制流(while,switch,if else); 4.数组的定义方式。 此阶段基本无难度,只要了解练习例题。 第三步:java面向对象学习, 1.类和对象; 2.java语言三大特性,封装、继承、多态; 3.一些关键字学习(static,final,abstract,extends)等。 这是重点,大家根据知识点一步步研究学习才是关键。 第四步:java应用编程, 例如:文件IO,集合(类似C语言数据结构),异常处理,线程,网络,JDBC数据库操作等,都是掌握面向对象以后,在查找不同的类使用类中不同的方法达到应用的效果,所以并不会很难。等基础语法掌握了就可以继续后面框架学习(java web方向,android学习),相信明确思路你会豁然开朗,更有学习动力。 以上没有具体的实例和知识点讲解,分享的只是完全没接触过java的初学者自学java的思路和学习的流程,应该把握的重点,希望大家有所帮助。 如果你想学好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.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,明确需求。我要做什么? 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后,会在当前目录下查找要运行的类文件; 如果指定了classpath,那么会在指定的目录下查找要运行的类文件。 还会在当前目录找吗?两种情况: 1):如果classpath的值结尾处有分号,在具体路径中没有找到运行的类,会默认在当前目录再找一次。 2):如果classpath的值结果出没有分号,在具体的路径中没有找到运行的类,不会再当前目录找。 一般不指定分号,如果没有在指定目录下找到要运行的类文件,就报错,这样可以调试程序。 4,javac命令和java命令做什么事情呢? 要知道java是分两部分的:一个是编译,一个是运行。 javac:负责的是编译的部分,当执行javac时,会启动java的编译器程序。对指定扩展名的.java 文件进行编译。生成了jvm可以识别的字节码文件。也就是class文件,也就是java的运行程序。 java:负责运行的部分.会启动jvm.加载运行时所需的类库,并对class文件进行执行. 一个文件要被执行,必须要有一个执行的起始点,这个起始点就是main函数. ----------------------------------------------------------------------------------------------

Java基础笔试机试测试题(带答案)

Java基础考试题 班级:__________ 姓名:___________ 日期:_____________ 一、笔试(45题,每题2分) 1) 分析下面的Java程序段,编译运行后的输出结果是()。 public class Test { public static void changeString(StringBuffer sb) { sb.append("stringbuffer2"); } public static void main(String[] args) { StringBuffer sb = new StringBuffer("stringbuffer1"); changeString(sb); System.out.println("sb = " + sb.toString()); } } A. sb = stringbuffer2stringbuffer1 B. sb = stringbuffer1 C. sb = stringbuffer2 D. sb = stringbuffer1stringbuffer2 2) 在Java中,包有多种用途,但不包含()。 A. 将类组合成较小的单元,便于使用 B. 有助于避免命名冲突 C. 有助于提高运行效率 D. 允许在更广的范围内保护类、数据和方法 3) 在Java中,如果要在字符串类型s="java" 中,得到字母'v' 出现的位置,选()语句。 A)s.matches('v'); B)s.charAt('v'); C)s.indexOf('v'); D)s.substring('v'); 4)下列代码运行后,变量 c 的值是()。 int a=15,b=10; double c=a/b; a) 1.5 b) 1.0 c) 1 d) 0 5)main 方法如下所示,该程序的运行结果是()。 public static void main(String [] args){ int i=0; System.out.print(i++); } a) 输出0 b) 输出1 c) 编译错误d) 运行时出现异常

java基础笔记

1什么是变量? 答:是指代在内存中开辟的储存空间,用于存放运算过程中需要用到的数据。 一个类中不能有2个public以为有pulic要和类名保持一致,有2个的话就不知道是和谁保持一致了,可以用很多类。 2变量的声明 答:当需要使用一个变量的时候,必须要对该变量就行声明,变量的声明包含2点,1是变量的基本数 据类型,2是变量名比如int a ;int是数据类型a是变量名,可以声明多个变量,比如int a,b,c;等 3,变量的初始化 答:有2种初始化方法, 1是在变量声明时初始化,变量类型变量名=初始值,比如int a=0; 2是先声明变量,然后再初始化给变量赋值,,比如int a;a=0; 3.1可以对变量中的值进行存取,操作,变量使用之前,要使用与其变量符合的数据类型。 3.2基本数据类型,8种 1整数类行:byte,short int(常用),long(常用)2浮点类型:float,double(常用)3,boolean 4 char 类型名称字节空间使用场景 ------------------------------------------------------------------------------------------------------------ byte 丨1字节(8位)丨储存字节数据(较少用) --------------------------------------------------------------------------------------------------------------- short 丨2字节(16位)丨兼容性考虑(很少用) ------------------------------------------------------------------------------------------------------------ int 丨4字节(32位)丨存储普通整数(常用) -------------------------------------------------------------------------------------------------------------- long 丨8字节(64位)丨存储长整数(常用) ------------------------------------------------------------------------------------------------------------- float 丨4字节(32位)丨存储浮动数(不常用) ------------------------------------------------------------------------------------------------------------ double 丨8字节(64位)丨存储双精浮点数(常用) ----------------------------------------------------------------------------------------------------------- boolean 丨1字节(8位)丨存储逻辑变量(true,fales)(常用) --------------------------------------------------------------------------------------------------------------- char 丨2字节(16位)丨存储一个字符(常用) ---------------------------------------------------------------------------------------------------------------

JAVA笔试题--基础很全有答案

第一组 1.下列不可作为java语言修饰符的是(D) A) a1B) $1C) _1D) 11 2.有一段java应用程序,它的主类名是a1,那么保存它的源文件名可以是(A)A) a1.javaB) a1.classC) a1D)都对 3.整型数据类型中,需要内存空间最少的是(D) A) shortB) longC) intD) 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、defaultStrings; B、publicfinalstaticnativeintw( ) C、abstractdoubled; D、abstractfinaldoublehyperbolicCosine( ) 11.关于以下application的说明,正确的是(C) 1.classStaticStuff 2.{ 3.staticintx=10; 4.static{ x+=5;} 5.publicstaticvoidmain(Stringargs[ ]) 6.{ 7.System.out.println(“x=”+ x);

Java基础试题

考砸了,把做错的题目重新复习一下对应的知识点 一、单项选择(每题2.5分,20 * 2.5’=50’)A 1.下面哪种情况属于方法重载。 A)方法名相同,参数类型与个数不同 B)方法参数类型相同 C)方法参数个数相同 D)方法名相同,方法参数类型与个数也相同 2.你想用下面的代码查找数组最后一个元素的值,当你编译并运行它的时候,会发 生什么?C public class MyAr{ public static void main(String argv[]){ int[] i = new int[5]; System.out.println(i[5]); } } A).编译通过并输出0 B).编译通过并输出 null C).编译通过但发生运行时错误 D).编译出错 3.JFrame的默认布局管理器是什么?C 4.Frame 的默认布局是FlowLayout 5.JFrame的默认布局是BorderLayout A)FlowLayout B)GridLayout C)BorderLayout D)CardLayout 6.给定下面的类定义D class Base{ Base(int i){} } class DefCon extends Base{ DefCon(int i){ //XX } } 如果将标记//XX 的地方替换为下面的行,哪一行是独立合法的? A).super(); B).this();

C).this(99); D).s uper(99); 7.启动线程方法正确的是___D________。 A)run( )方法 B)suspend( )方法 C)stop( )方法 D)start( )方法 6、在Java中,调用Math.random() 方法可能返回的结果是(B) Math.random 返回的是一个double值此值大于0.0 且小于1.0 A)132.34 B)0.342 C)29.34E10 D) 1.0009 7、下面的哪一个声明是合法的?B A) public protected amethod(int i) B) public void amethod(int i) C) public void amethod(void) D) void public amethod(int i) 8、假设有以下Java代码:C import java.applet.*; import java.awt.*; public class My_Applet extends Applet { … } 如果要在HTML页中嵌入以上Applet,可按下面()方式完成。(选择一项) A) B) C) D) 9、在Java中,要想使只有定义该类所在的包内的类可以访问该类,应该用(A)关 键字。 A)不需要任何关键字 B)private C)final D)protected 10、下述哪些说法是正确的?A

马士兵java基础笔记 pdf版 面向对象部分

一面向对象设计思想 ◆面向对象设计思想是,从现实世界中客观存在的事物出发构造软件系统,并在系统的构 造中尽可能运用人类的自然思维方式。 ◆面向对象更加强调运用人类在日常思维逻辑中经常采用的思想方法与原则,如抽象、分 类、继承、聚合、多态。 ◆对象用计算机语言对问题与中事物的描述,对象通过属性(attribute)和方法(method)来分 别对应事物所具有的静态属性和动态属性。 ◆类是用于描述同一类型的对象的一个抽象的概念,类中定义了这一对象所因具有的静态 和动态属性。 ◆类可以看成一类对象的模板,对象可以看成该类的一个具体实例。 ◆类(对象)之间的关系: 1.关联关系:映射到代码一个类的方法里面是另外一个类的对象,我的方法的参数是 你这个类的对象 2.继承关系:什么什么是什么 3.聚合关系 聚集:谁谁是谁的一部分。组合:咱们俩密不可分! 4.实现关系:

5.多态 总结: ●考虑问题里面有哪几个类,哪几个对象;找名词 ●每种类有哪些属性和方法; ●类和类之间的关系。 二Java与面向对象 ◆对象是Java的核心,在Java中“万事万物皆对象”。 ◆对象可以看成是静态属性(成员变量)和动态属性(方法)的封装体。 ◆类是用来创建同一类型的对象的模板,在一个类中定义了该类对象所具有的成员变量以 及方法。 ◆为什么用对象? 1)Reusable 2)Extensiblity 3)维护和替换更加方便。 三Java中面向对象内存分析 1.Java类的定义 2.成员变量(返回值输出之后也消失,返回值在栈中) 3.引用 Java语言中除基本类型之外的变量类型都称之为引用类型。 Java中的对象是通过引用对其操作的。 引用类型占两块内存,堆栈中的引用,对里面的对象 String s = new String(“aaa”); s→[],s在栈中,”aaa”在堆里面。 4.对象的创建和使用 ◆必须使用new关键字创建对象。 ◆使用对象(引用).成员变量或来引用对象的成员变量。

超级经典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后,会在当前目录下查找要运行的类文件; 如果指定了classpath,那么会在指定的目录下查找要运行的类文件。 还会在当前目录找吗?两种情况: 1):如果classpath的值结尾处有分号,在具体路径中没有找到运行的类,会默认在当前目录再找一次。 2):如果classpath的值结果出没有分号,在具体的路径中没有找到运行的类,不会再当前目录找。 一般不指定分号,如果没有在指定目录下找到要运行的类文件,就报错,这样可以调试程序。 4,javac命令和java命令做什么事情呢?

Java基础试题及其答案

J a v a基础试题及其答案 The latest revision on November 22, 2020

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中,在包下定义一个类,要让包下的所有类都可以访问这个类,这个类必须定义为()。(选择一项) a)protected b)private c)public d)friendly 4)在Java中,下列()语句不能通过编译。 (选择一项) a) String s= “join”+ “was”+ “here”; b) String s= “join”+3; “”+new Person() toString() c) int a= 3+5 d) float f=5+; double float 6)给定java代码如下,运行时,会产生()类型的异常。(选择一项) String s=null; (“abc”); a)ArithmeticException b)NullPointerException c)IOException d)EOFException 已到文件尾,再读取抛出 7) 在java中,()对象可以使用键/值的形式保存数据。(选择一项) a)ArrayList List 有序可重复 b) HashSet Set 无序不可重复同一对象是重复的 c) HashMap Map(key/value)重复定义:hashCode、equals(业务) d) LinkedList List 8)给定如下java代码,编译运行之后,将会输出()。 public class Test{ public static void main(String args[]){ int a=5; Sys((a%2==1) (a+1) /2:a/2) ;三目表达式 } } (选择一项) a)1 b)2

【黑马程序员】毕向东老师Java基础入门教程笔记

【黑马程序员】毕向东老师Java基础入门教程笔记 毕向东Java基础视频教程_适合初学者入门 完整视频:https://www.360docs.net/doc/c5824774.html,/course/7.html?1911sxkqq 提取码:ks8m 课程资料:https://https://www.360docs.net/doc/c5824774.html,/s/1jAjI85SlUTlrTuF_J2QNeQ 提取码:4bfg 黑马程序员视频库网址:https://www.360docs.net/doc/c5824774.html,(海量热门编程视频、资料免费学习)学习路线图、学习大纲、各阶段知识点、资料网盘免费领取+QQ 3285264708 / 3549664195 1.编程:人与计算机之间交流的过程就是编程。 2.Java语言特点:跨平台性。原理:JAVA程序是通过java虚拟机运行在系统平台上的, 只要该系统可以安装相应的java虚拟机,该系统就可以运行JAVA程序。 3.JRE和JDK的区别: JDK:开发工具包,JDK是提供给开发人员使用的工具包。 JRE:JAVA运行环境包括java虚拟机和java程序所需的核心类库。 4.JAVA虚拟机jvm 是JAVA语言的运行环境,jvm读取并处理编译过的与平台无关的字节码文件 5.JAVA程序运行机制 Java源文件通过javac.exe 编译器编译成字节码文件,然后再通过jvm运行。 6.Java中需要注意的地方:一个JAVA源文件只定义一个类,不同的类使用不同的源文件 定义;将每个源文件中单独定义的类都定义成public的;保持JAVA源文件的主文件名与源文件中的类名一致;

7.Main方法的作用:程序的入口,保证程序的独立运行,被JVM调用。 8.文档注释: 单行注释:// 多行注释/* */ 文档注释/** */ 9.标识符的命名规则: 由字母、数字、下划线、$组成,不能以数字开头,严格区分大小写,不能使用关键字,10.Java中的常量和变量 定义变量的格式:数据类型变量名=初始化值; 作用范围:定义开始到定义它的代码块结束,定义范围内的左大括号开始,到右大括号结束。同一作用范围内,不允许多个局部变量命名冲突; 常量分为:整型常量小数常量布尔型常量字符型常量空常量(null)。、 11.整型常量:三种表现形式:计算机中存放的是二进制最低组成单位是八位,每八位 表示一个字节。 分为十进制八进制十六进制 12.局部变量和成员变量 局部变量:不是声明在类体括号里面的变量; 局部变量使用前必须初始化值; 局部变量没有默认初始化值; 局部变量的作用域是从定义开始到定义它的代码块结束; 成员变量:在方法体外,类体内声明的变量,又称字段(Field)或全局变量;(其实Java中没有全局变量,由于Java是面向对象语言,所有变量都是类成员),没有初始化时,会被赋予默认的初始化值。

Java语言编程基础知识

Java语言编程基础知识 Java语言编程基础知识 学习Java要掌握不同数据类型的变量定义与使用,掌握不同运 算符的运算规则,掌握流程控制语句的执行流程,编写方法的声明 与调用,创建数组并访问数组元素等知识。那么Java语言编程基础 知识有哪些呢,一起来看看! 1)注释 在程序开发工程中,用于解释和说明程序的文字我们称之为注释,Java中的注释分为以下几种:单行注释、多行注释、文档注释。 2)关键字 了解Java关键字的含义及特点,掌握关键字使用的注意事项。 3)标识符 了解什么是标识符,标识符的组成规则,以及标识符使用时的注意事项。 4)常量与变量 理解常量与变量的含义,并掌握常量与变量的区别、变量的定义格式以及变量的赋值。 5)数据类型 掌握Java语言的'数据类型,如基本数据类型:byte、short、int、long、float、double、char、boolean,以及引用类型:类、 接口、数组。 6)运算符

熟练掌握Java中的运算符:算术运算符、赋值运算符、比较运算符、逻辑运算符、位运算符、三目运算符。 7)流程控制语句 了解什么是流程控制语句,掌握以下流程控制语句:顺序结构、选择结构、循环结构,并能够通过流程控制语句实现特定的功能。 8)方法 掌握方法的定义及格式,并能正确的调用方法,理解方法的调用过程,同时清楚方法的注意事项;掌握方法重载及其特点。 9)数组 了解数组的概念,掌握数组的定义格式、静态初始化、动态初始化,并能够理解Java中数组的内存图解。熟练掌握数组的遍历、获取最值、数组元素逆序、数组元素查找、数组排序和二分查找,以及二维数组的定义格式及初始化。

相关文档
最新文档