JAVA知识
JA V A
说明:因为时间原因,Java整理到第⼗章。SQL后⾯也没法整理了。考试的范围不会超出书本,第⼀次MT的范围是学完SQL 剩下部分后所有已经学过的知识。该知识整理是根据书的内容和顺序整理的。仅供参考。⼤家还是要看书的,基本上选择题的话⼤家看书后有印象好选⼀些。为了以后⼯作,还是要知道每个知识点是什么,做什么⽤的和怎么⽤的。
第⼀章Java介绍
关键字:Java语⾔的特点,类成员,数组
⼀、Java编程语⾔
Java是Sun公司开发的⾯向对象的编程语⾔(OOP,Object-oriented Programming Language),Java的设计是为了满⾜平台独⽴的需要(如各种移动设备,不同的操作系统等),Java可以⽤来开发独⽴的应⽤程序和分布式⽹络应⽤程序。
1、介绍⼏个类型的Java应⽤程序:
(1)CUI程序:是操作系统控制的可执⾏应⽤程序。这些程序可以访问系统资源,如读取本机上的⽂件
(2)GUI程序:⽤于Windows环境,可以以可视化的图形⽤户界⾯与⽤户交互。
(3)Applets⼩应⽤程序:嵌⼊到⽹页中的,可执⾏的⼩程序。要求浏览器⽀持Java,Applets 对系统资源的访问是有限制的。
(4)Servlets:服务器端应⽤程序,⽤于拓展Web服务器的功能
(5)Packages:包,包含了⼀些类的集合,可以被不同的应⽤程序使⽤
编译器是将⽤编程语⾔编写的指令转换为机器可以理解的语⾔。
2、Java的特点
(1)简单:Java的很多内部功能不需要知道,如如何分配内存。
(2)⾯向对象:Java是⾯向对象的语⾔,所有的代码都要写在类⾥⾯,处理的都是⼀个个的对象,如类,接⼝等。它⽀持⾯向对象编程语⾔的特点:抽象,封装,继承和多态
(3)编译(Compiled)和翻译(Interpreted):Java程序是先被编译,然后被翻译。编译的时候,编译器检
查程序中的错误并显⽰。当程序编译⽆错误后,编译器将代码转换为字节码(Bytecode)。然后Java虚拟机(JVM,Java Virtual Machine)将字节码翻译成计算机代码,也就是计算机能够理解的代码。也就是.java⽂件-.class⽂件-计算机语⾔
(4)可便携(Portable):即指可以在不同的平台,包括不同的操作系统,不同的移动设备上运⾏。在⼀个电脑上写完java程序,编译成.class⽂件,那么在另⼀台电脑上只要安装JVM 就可以运⾏程序了。不同的操作系统要安装匹配的JVM才⾏。
(5)分布式(Distributed):Java可⽤于开发分布式⽹络应⽤程序。
(6)安全:Java⾃⾝的很多机制保障安全,如Applet对本地资源的访问是受限的。
3、Java的架构
(1)Java编程语⾔和类⽂件
(2)JVM,Java虚拟机:构成包括类加载器,执⾏引擎,即时编译器(JIT,Just in Time)
(3)Java应⽤程序界⾯(API)
4、JVM的垃圾回收机制(Garbage Collection)
在Java程序⾥创建对象会使⽤内存,当⼀个对象不再被使⽤时,垃圾回收机制会释放这些资源,从内存中清除,以循环利⽤内存空间,也就是垃圾回收机制。
⼆、类成员
1、数据类型
在我们的⽇常⽣活中,有不同的数据,如⼈的名字,整数,⼩数等,同样的,在Java 程序⾥,有不同的数据类型。Java⾥的数据类型有:
(1)原始数据类型(Primitive Type)
Java内置的简单的数据类型,包括:
类型细分存储占⽤空间数据范围默认值
整型字节整型byte 1字节-27~27-1 0 短整型short 2字节-215~215-1 0 整型int 4字节-231~231-1 0 长整型long 8字节-263~263-1 0
⼩数
浮点型float 4字节 3.4e-038~3.4e+0380.0 双精度型double 8字节 1.7e-038~1.7e+0380.0
布尔型boolean 1⽐特bit true或false false
字符型char 2字节单个字符null
注:1个字节是8bit,如字节整型,8位,第⼀位表⽰正负,剩下的七位可以为0或1,所以可以表⽰的范围是-27~27-1,如01111111表⽰的值是27-1=127其他类推。
虽然数据有默认值,但是还是建议⼤家平常养成习惯,数据先定义,赋值后在使⽤。(2)引⽤数据类型(Reference Type)
也叫⾮原始数据。对于原始数据类型,如int a=9;存储的直接是9这个值,⽽引⽤类型,如Button b=new Button();b存储的是b在内存中的地址。类对象,数组,枚举类型都是引⽤类型的数据。
(3)抽象数据类型(Abstract Type)
如String,字符串类型,从原始数据类型派⽣出来,但⽐原始数据类型有更多的功能。
2、关键字(Keyword):
Java编程语⾔⾥⾯预留了⼀些保留字,⽤作关键字,如abstract,boolean,int,break等等,更多参考书1.18页。所以编程的时候不要使⽤这些名称定义变量。关键字都应该⼩写。
Java是⼤⼩写敏感的语⾔,如Student和student是两个不同的变量。
3、定义变量
变量⽤于存储和操作数据。程序⾥的所有变量都要先定义,然后才能使⽤。
3.1、变量命名惯例:不是强制性的,但是建议遵循这些惯例,提⾼程序的可读性。
(1)名字需要简短,有意义,中间没有空格和其他符号,可以把下划线当空格⽤。
(2)名称必须是唯⼀的。
(3)必须以字母,下划线_或者$开头,后⾯可以跟数字,字母,下滑线_或$符号。不能以数字开头。
(4)不能是关键字,且要区分⼤⼩写,如前所述,Student和student是不同的变量。
3.2、变量类型:
变量可以被访问的范围叫做变量范围,根据变量范围,变量有以下⼏类
(1)类变量(Class Variables):定义在类⾥,可以被该类及该类的对象访问。
(2)实例变量(Instance Variables):定义在类⾥,当创建该类的对象时被创建。不同的对象的值不同。
(3)局部变量(Local Variables):定义在⽅法⾥⾯,只能在该⽅法⾥使⽤,不能在⽅法外使⽤该变量。
(4)静态变量(Static Variables):内存⾄分配⼀次,所有的类对象共享⼀个值。
(5)⾃动变量(Automatic Variables):只能在定义变量的函数⾥访问,如果调⽤该⽅法,则变量被创建,如果退出该⽅法,则变量被摧毁。
3.3、变量声明和赋值
变量声明告诉编译器变量的名称,数据类型,访问范围等。
如public int Number1;//声明了⼀个变量Number1,类型为int型,访问范围是public,即所有的类都可以访问该变量。
int Number1;//变量声明
Number1=2;//变量赋值
4、数据类型转换
我们知道Java⾥有不同的数据类型,在操作的时候,如⼀个int型和⼀个float型,两个的类型不⼀致,则需要进⾏类型转换。Java⽀持两种类型转换:
用于存放创建后则不变的字符串常量(1)隐式转换(Implicit Conversion):即⾃动转换,不需要我们做什么,但要求两种数据类型是兼容的,如int和float。
int num1=10;
float num2=20.5f;
float num3=num1+num2; //num1会被隐式转换为float型
(2)显⽰转换(Explicit Conversion):如果⼀个数据不能隐式转换为另⼀种数据类型,
则我们需要进⾏显⽰转换,如String和int型。
int num1=10;
String num2="101";
int num3=num1+Integer.valueOf(num2);//此处需要把num2转换为int,然后再使⽤
三、数组(Array)
数组⽤于存储相同数据类型的数据。数组中的元素(也就是每个值)在内存中的存储是连续的,即a[0]后⾯跟着a[1]。我们通过数组名称和索引(从0开始)来访问数组中的元素。
1、数组类型:
(1)⼀维数组(One-Dimensional Array):⼀⾏数据。
int one_dimensional[];//数组声明,类型为int,数组名称为one_dimensional
one_dimensional=new int[10]; //创建数组,分配内存,数组⼤⼩为10。
(2)多维数组(MultiDimensional Array):如矩阵,有多⾏多列数据,每⾏的数据个数可以相同,也可以不相同。程序Array_2DArray:
四、枚举类型(Enum)
枚举类型⽤于存放⼀组常量。如存放星期,⽉,⽅向(东西南北)等,因为都是固定的,可以定以后,反复使⽤,且⽤户不能使⽤其他值,只能从定义中的值中选择。枚举类型⽤关键字enum定义。
除了在类⾥定义enum,我们也可以在类之前定义enum。如:
此外,和类类似,enum⾥也可以定义变量和⽅法。此处不再详述。
本章主要知识点:Java的特点,垃圾回收机制,数据类型,使⽤变量,数组。
第⼆章类和对象
关键字:类,对象,访问定界符(Access Specifier),修饰符(Modifier)
⼀、Java程序的结构
类(Class)和对象(Object)构成Java应⽤程序的基本结构。Java是⾯向对象的编程语⾔。处理的是⼀个个的对象,对象是类的⼀个实例。
如⼈类是⼀个类,我们每个⼈都是⼈类的⼀个实例,有⾃⼰的名字,年龄,性别等属性,还有⾏⾛,奔跑,思考,吃饭,睡觉等⾏为。这些属性和⾏为就是⼈类这个类的成员变量和⽅法。
所以⼀个好的习惯是将要实现的代码放到⽅法⾥,然后将⽅法放到类⾥,通过在Main 函数中创建类的对象来调⽤⽅法,这样可以提⾼代码的重复利⽤率且简化代码。
类的主要成员是变量(Variables)和⽅法(Methods):类中定义了各种变量和⽅法,也就是封装(Encapsula
tion)了各种变量和⽅法。将变量和⽅法都放在类中,并定义不同的访问范围,如public,private,从⽽限制其他类的访问,保护数据。
⼆、使⽤类和对象
1、定义类
每个学⽣都有⼀些共同的属性,如都有名字,年龄,性别等,但是每个⼈的年龄,性别,名字都不⼀样,所以我们将共有的属性和⾏为总结出来,然后归纳到⼀起,做成⼀个类,这样每个学⽣都会有这些属性(姓名等)和⾏为(吃饭等),只是每个学⽣的属性和⾏为不⼀样。所以我们既要有类,也要有对象。
我们使⽤class关键字定义⼀个类,如
class Student //定义了⼀个类,名称是Student
{
//包含的成员变量和成员⽅法;
String Name;
char Gender;
public void Run() {}
}
2、创建类的对象
在定义了⼀个学⽣类Student后,我们需要创建这个类的对象,如创建⼀个名为John的对象。
Student John; //声明了⼀个变量,名称为John,类型为Student
John=new Student(); //⽤new创建John这个对象,⽤new后,内存才会分配空间给John 这个对象。
也可以直接声明和创建放在⼀句话⾥,即Student John=new Student();
3、main()⽅法
main()⽅法相当于程序的⼊⼝,程序执⾏的时候,编译器会先寻main⽅法,然后开始执⾏。我们可以在⼀个程序中定义很多个类,然后在main⽅法⾥创建各种类的对象,来访问类⾥⾯的变量和⽅法,从⽽简化代码。
main()⽅法的定义⽅式如下:
public static void main(String[] args) {执⾏内容;}
其中,⽅法是public是说明程序⾥的任何类对象都可以访问⼀个⽅法,static说明这个⽅法是属于类的,⽽不是其对象的⽅法,即我们不需要创建这个类的对象,直接通过这个类名就可以访问该⽅法,void说明⽅法没有返回值。
main⽅法可以定义在任何类⾥,但是main所在的类的名称必须和.java⽂件的名称⼀样,这样才能到main⽅法的位置。
4、构造函数
我们在类⾥定义了变量后,要给其赋值,也就是初始化(Initialization),⽐如每个学⽣都有⾃⼰的名字,性别和出⽣年⽉等,我们创建每个学⽣对象时都要将这些变量初始化。通常我们将这个⼯作放到⼀个特殊的⽅法中实现,也就是构造函数(Constructor)。
构造函数是⼀个特殊的⽅法,⽤于初始化数据。它和类有相同的名称,当我们创建该类的对象的时候,⾃动被调⽤。构造函数前⾯不写返回类型,它会返回⼀个该类的实例,⽽不是⼀个值。
当执⾏Student John=new Student()时,该类⾥的Student()⽅法⾃动被调⽤。
另外,我们还可以定义带参数的构造函数,这样可以在创建对象的时候传过去参数,从⽽初始化变量,如下例:
这样我们在创建对象的时候,如果要调⽤带参数的构造函数,就要传过去相应的参数。如Student Allen=new
Student(“Allen”,21),这样带参数的构造函数会⾃动被调⽤。
三、访问定界符和修饰符
1、访问定界符(Access Specifier)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论