java基础知识点
java基础知识点笔记

java基础知识点笔记Java是一门非常重要的计算机语言,具有良好的跨平台性和易读性和易学性。
尤其是基于Java开发的移动端和Web端产品,其优秀的性能和可扩展性在行业中得到了广泛的青睐。
作为Java开发工程师,熟练掌握Java的基础知识非常重要。
一、Java基本语法Java程序包含一个或多个类,不同类可以相互调用使用。
每一个Java程序都需要有一个入口点,即main()函数。
在Java中,注释采用“//”或“/*...*/”的形式,可以单行或多行注释。
Java变量需要先声明再使用,可以定义基本类型变量和引用类型变量。
Java中的运算符包括算术运算符、逻辑运算符等。
二、Java面向对象编程Java是一门面向对象的编程语言,对象是Java程序的基本组成单元。
Java中的类封装了数据和方法,可以实现类的继承和多态。
在Java中,使用构造函数实例化对象,可以使用访问控制符来控制类成员的访问权限。
三、Java流程控制语句Java中的流程控制语句有条件语句(if、if-else、switch)、循环语句(while、do-while、for)等。
其中,if语句可以进行嵌套,switch语句可以使用break语句避免case穿透问题。
四、Java数组Java中的数组是一组相同类型的数据序列,从0开始编号,使用方括号表示。
在Java中可以使用foreach来遍历数组,也支持多维数组。
五、Java异常处理Java程序中的异常指的是程序出现的错误。
异常处理是Java程序中的一部分,可以使用try-catch语句来捕获并处理异常。
Java中的异常类型包括运行时异常和受检查异常。
六、Javaio编程Java中的文件和I/O操作称为io编程。
Java的io编程采用字节流和字符流,其中字节流用于处理二进制数据,字符流用于处理文本数据。
Java中的io操作需要进行文件的读取、写入等操作,可以使用File类来操作文件。
七、Java线程Java程序中,线程指的是一条执行序列,Java中的线程可以继承Thread类或实现Runnable接口。
java基础知识点

java基础知识点
1、面向对象:Java语言是一种面向对象的编程语言,它使用Java类和Java对象来构建复杂的系统。
Java类包含方法(程序执行的语句)和属性(关于对象的信息)。
可以使用对象间的关系(如继承和实现)来“重用”代码。
2、语言基础:Java语言是一种类型安全的、健壮的和高效的编程语言,它具有静态类型系统、异常处理、泛型和沙箱安全机制等功能。
这种类型安全指的是Java可以通过显式声明变量的数据类型来确保变量的内容。
3、继承:Java支持继承机制,可以将多个类“组装”在一起,互相共享代码并复用属性和方法。
继承是一种多态性,它允许每个类“定义”它自己独有的行为,但与同一父类共享相同接口。
4、包:Java使用java包来组织类和接口,它提供了独立的命名空间,可以将相似的类和接口组装在一起,以保持代码整洁和可维护性。
5、容器:容器是Java中的一种特殊数据类型,它可以储存和管理多个对象。
Java提供了多种容器,比如ArrayList,Map,HashMap 等,帮助程序员管理复杂的系统。
java知识点总结

D、不确定
10、数组的长度: 数组的长度用其属性值. Length表示。 对一维数组,数组的长度是数组中元素的个数 对二维数组,数组的长度是其含有的一维数组的个数。 float a[] = new float[12]; a.length的值12 int x[ ][ ]=new int[3][6] x.length的值为 3。
第1章 Java 入门 Java入门
计算机工程学院
第一章
• 一、与平台无关性
Java 应用程序编译后形成的字节码CLASS文件不是直接在操作系统或者 CPU上直接运行,而是字节码由Java虚拟机负责解释运行。因此Java编写的应 用程序在运行时与平台无关。 二、 Java三种平台简介 Java平台主要分为三个版本:JavaSE、JavaEE 、 JavaME • • • Java SE(标准版或Java 标准平台) 是Java技术的核心和基础 Java EE(企业版企业平台) Java ME(为Java微型版或Java小型平台)为在移动设备和嵌入式设备上运行 应用程序提供一个健壮且灵活的环境。
• Java SE是基础
计算机工程学院
第一章
三、 系统环境path的设置: (1) 设 置 环 境 变 量 path , 可 单 击 该 变 量 进 行 编 辑 操 作 , 将 需 要 的 值 (D:\jdk7\bin)加入即可 。 path= D:\jdk7\bin; (2)设置环境classpath classpath=D:\jdk7\jre\lib\rt.jar;.;
数组的实体
数组变量boy中存放着数组在内存中单元(实体)的首地址。 计算机工程学院
第二章
9、2个相同类型的数组具有相同的引用,那么他们具有完全相同的元素(实体)
java面试基础知识点

java面试基础知识点Java是一门非常流行的编程语言,它可以用来开发各种类型的应用程序,包括使用其他语言开发的那些手机应用程序。
面对Java 的开发者,有相当多的基础知识需要掌握。
下面就是一些Java面试时最常被考查的一些基础知识点。
1.Java语言的特性Java语言的特性是编程的基础,因此考生需要掌握Java语言的语法、变量、控制结构、数据类型等基本概念。
Java语言具有可移植性。
它可以在任何支持java运行环境(JVM)的设备上运行,不管是PC还是移动设备。
这一特性使Java成为非常有用的编程语言,同时也让它在企业应用中受到极大欢迎。
2.Java基本开发技术考生应该能够熟练掌握Java基本开发技术,包括Java语言的语法, Java类库、Java程序设计以及Java应用开发技术等。
例如,Java语言的语法包括关键字、变量、数据类型、控制结构、运算符等;而Java类库则指标准类库、自定义类库等;Java程序设计是指设计模式、调试技术等;而Java应用开发技术指软件工程方法、开发框架等。
3.集成开发工具集成开发工具是用来提高开发效率的工具,考生在面试时也应当能够掌握相关的知识。
常见的集成开发工具有Eclipse、IntelliJ IDEA、NetBeans等。
这些集成开发工具都有自己的优缺点,因此考生需要根据自己的需要选择合适的工具。
4.Java虚拟机Java虚拟机是Java程序运行的基础环境,它提供了一个统一的运行环境,使得Java程序可以在任何支持Java虚拟机的平台上运行。
考生需要了解Java虚拟机的工作原理,以及如何在虚拟机上运行Java程序。
5.Java框架Java框架是一种把功能模块组合在一起形成可重用组件的体系结构,是编写程序更高效的重要方式。
考生应该了解如何使用Java 框架来开发应用程序,以及框架的实现原理。
常见的Java框架有Struts、Spring、Hibernate等。
java基础知识点整合

面向对象3.1 面向对象介绍1.什么是面向对象对象其实就是现实生活中的各种物体,他们有各种各样的功能,当我们需要借助这些物体去完成我们的需求时,我们就是在面向这些对象,使用它们其中的功能,至于他们其中的功能是如何实现的,我们无需知道,只要能完成需求即可.2.什么是面向对象编程(OOP):Object Oriented Programming 是一种编程思想, 使用对象去进行编程.它的特点有: 封装, 继承, 多态3.对象从哪来:对象是需要先用类来描述, 然后使用类来创建.类是对象的描述, 对象是类的实例.4.面向对象的优点提高代码复用性.使用者无需关心对象其中是如何实现的.让程序员从一个编写者转换成一个使用者.更加符合人的思维能力,使编程更简单.3.2 定义类1.成员变量在类中用变量来描述这一类对象公有的特征.2.成员函数在类中用函数来描述这一类对象公有的行为.3.3 创建和使用对象1.怎么创建使用"new 类名()"形式创建一个对象2.怎么使用通过"."语法来访问类的成员.例如: Person p = new Person(); = "张三";p.eat();3.4对象的初始化过程1.加载类类在第一次使用的时候被加载到内存中2.初始化成员变量当创建对象的时候, 成员变量会初始化为默认值, 基本数据类型都是0, 引用数据类型都是null3.5对象的生命周期1.开始new关键字创建对象的时候, 生命周期开始2.结束没有任何引用指向对象, 该对象成为垃圾, 被虚拟机回收3.6 匿名对象1.什么是匿名对象没有任何引用指向的对象, 就叫匿名对象2.匿名对象有什么特点匿名对象在创建之后立即被回收, 只能使用一次3.7 封装1.什么是封装封装就是将一类事物的特征和行为封装在一个类中,定义成成员变量和成员函数创建对象之后, 这些成员函数可以访问自己的成员变量2.对成员变量的封装使用private关键字将成员变量私有化如果需要对外部提供访问方式, 写公有的get, set方法3.8 构造函数1.什么是构造函数构造函数是一个特殊的函数.函数名必须和类名一致.没有返回值类型.(不等于void,不能写任何返回值).可以写return,但是不能写return+值(尽量不要写).new关键字创建对象时自动调用2.应用场景如果我们希望一段代码在创建对象的时候执行, 就可以写在构造函数中通常我们使用构造函数对成员变量进行赋值3.构造函数和成员变量的执行顺序成员变量优先于构造函数先执行,因为通常使用构造函数都是对成员变量进行初始化,所以如果没有成员变量,构造函数是没有任何意义的.4.构造函数的重载和普通函数一样, 参数列表不同(类型不同,顺序不同,个数不同)即可.重载只与参数列表有关5.构造函数的调用在创建对象时自动调用.在构造函数的第一条语句可以使用"this(被调用的构造函数的实际参数)"的形式调用该类其他构造函数.6.自动生成构造函数在一个类中构造函数是一定存在的.因为在一个类中如果没有写任何的构造函数, 编译时也会自动生成一个无参的构造函数, 里面什么代码都没有.如果写了任何一个构造函数, 那么就不会有自动生成的了注意: 我们在类中只写了一个有参构造函数的时候,这个类就不能使用无参的构造函数创建对象了7.构造函数的访问权限通常构造函数的访问权限都是公有的, 因为构造函数就是为了让别人创建对象时调用的个别情况下在定义类时不希望外部创建对象, 这时可以使用private修饰构造函数, 例如: 单例设计模式(Singleton)3.9 成员代码块(构造代码块)1.什么是成员代码块在类中使用"{}"定义一段代码, 这段代码在创建对象的时候会自动运行2.成员代码块和构造函数的区别构造函数在创建对象的时候是N个选1个调用而代码块是一定执行构造函数可以传入参数代码块不能传入参数3.创建对象时内存中的工作顺序在内存中查找指定的类, 如果没有就加载类, 有则直接引用在内存中开辟一块空间, 将成员变量初始化为默认值, 0和null按照类代码从上到下的顺序, 执行代码块或者成员变量赋值执行构造函数中的代码4.在方法中也可以写代码块(方法代码块),但是不常用3.10成员变量和局部变量1.成员变量在类中定义的变量,(Field),在整个类都可以访问(用于描述着一类事物的共有特征).成员变量随着对象的建立而建立,存在于对象所在的堆内存中.成员变量有默认初始值(0/false/null)2.局部变量在方法/语句中定义的变量(Local Variable),存在于栈内存中.作用范围一结束,变量的空间会自动释放.局部变量是没有初始值的.3.同名问题在同一个作用域中成员变量不能重复, 局部变量也不能重复但是成员变量和局部变量可以同名, 他们互相不冲突4.访问问题在局部变量和成员变量同名的时候, 如果直接用变量名访问一个变量, 那么是先找局部变量, 如果不存在才找成员变量这时如果不想找局部变量, 直接找成员变量, 应该用"this.变量名"3.11 this关键字1.构造函数中"this(参数)"形式可以在构造函数的第一条语句中调用其他的构造函数"this.成员名"形式可以调用当前对象的成员2.普通函数中this用在普通的函数中, 可以代表调用当前函数的对象哪个对象调用this所在的函数,this就代表那个对象.3.内部类中可以使用外部类名.this.成员来访问外部类的成员.3.12静态(static)变量1.什么是静态变量用static修饰的成员变量就是静态变量(随着类的加载而加载)优先于所有非静态成员及成员代码块.2.静态变量和普通变量有什么不同静态变量在类加载后就初始化, 不用创建对象可以直接使用.静态变量被类的所有对象共享(在共享区), 通过一个对象改变, 所有对象都改变.静态变量可以使用"类名.变量名"形式访问, Java推荐使用这种方式, 而不是通过对象访问.3.类在什么时候加载类在第一次使用的时候加载例如: 创建对象, 使用静态变量, 使用静态方法定义变量的时候不加载类.4.静态变量在什么时候使用在定义一个类的时候, 如果希望这个类的所有对象共享一个数据时, 就可以使用静态成员变量.3.13静态(staitc)方法1.什么是静态方法用static修饰的方法就是静态方法静态方法类加载后可以直接运行可以使用"类名.方法名"调用2.什么时候使用静态方法如果一个方法没有访问任何外部的非静态成员, 那么就可以定义为static.这样在调用的时候不用创建对象即可使用, 给人提供方便, 并且效率更高.3. 静态方法使用的注意事项1. 静态方法不能直接访问方法外非静态成员.因为静态方法是随着类的加载而加载的,而非静态成员只有在对象创建才会加载.因此,当静态方法访问方法外非静态成员,对象不一定被创建,所以不能直接访问,除非在静态方法中创建本类对象,才可以访问,方法外静态成员.2. 与静态方法不能直接访问方法外非静态成员相反,非静态方法是可以访问静态成员的,因为,对象被创建了,这个类一定被加载到内存中,所以可以访问.3. 因为静态优先于对象存在,所以在静态方法中是不能出现this,super这两个关键字,道理很简单,静态被加载时还没有对象,而这两个关键字都和对象有关,所以不能使用.4. 静态的利与弊静态好处:1. 如果一个类里的某一个成员变量,他的所有需要共同使用它,没必要每一个对象都存储一份,可以将成员变量设为static,系统将进行单独空间(方法区/静态区) 存储,节省内存空间.2. 静态的成员可以直接被类名调用,使用简单.静态弊端:1. 因为静态是随着类加载而加载的的,所以其生命周期是和类同存亡的.所以生命周期很长,比较浪费内存空间.2. 因为静态只能访问静态,所以访问有一定的局限性.3. 因为主函数是静态的,所以用主函数调用的方法再不创建对象的情况下,只能都是静态的.3.14静态代码块1. 什么是静态代码块用static修饰的代码块类加载后直接运行, 只能执行一次(因为类只会加载一次),如果在一个类中有主函数,他是优先于主函数运行的.不能访问外部非静态成员2. 什么时候用静态代码块在定义一个类的时候, 如果希望某一段代码在别人使用这个类的时候就执行, 那么就可以写在静态代码块中.用于给类初始化.3.15单例设计模式设计模式:解决某一类问题最行之有效的方法.单例设计模式:让一个类只能创建一个对象.懒汉式和饿汉式饿汉式步骤:1.私有化构造函数.2.创建一个对象,并私有(防止类外改变对象内部内容).3.创建一个公有的,静态的方法,返回本类对象,使类外获取本类对象.懒汉式步骤:1.私有化构造函数.2.创建一个对象引用,并私有(防止类外改变对象内部内容).3.创建一个公有的,静态的方法,判断是否创建了一个对象如果创建了,返回本类对象, 如果没有创建,创建一个对象返回,使类外获取本类对象.3.16继承1.什么是继承定义一个类, 使用extends关键字可以继承另一个类, 得到父类的所有非私有属性和方法.2.继承的特点Java只支持单继承, 不支持多继承, 但可以多重继承.一个父类可以有多个子类, 但一个子类只有一个父类.3.java改良多继承的原因?提高代码的安全性,如果一个子类继承多个父类,而这多个父类中有同名的方法,子类要去访问的话,就不知道要访问哪一个方法了.降低了安全性..4.子类对象创建的过程子类对象之所以能调用父类的方法, 是因为在创建子类对象的时候, 其内部创建了一个父类对象.在new一个对象时,会先去子类构造函数,中寻找super()(如果没有显示指定父类构造函数)然后创建父类,然后再回到子类中创建对象.调用子类的方法时, 虚拟机会先在子类中查找是否包含该方法, 如果没有则找父类.在调用子类构造函数的时候, 一定会使用"super(参数)"形式调用父类构造函数创建父类对象.子类中必须要有一个构造函数含有super调用父类构造函数..super和this类似, 都是必须在构造函数的第一条语句使用如果构造函数写了this, 那么则不能写super, 反之亦然如果没写this也没写super, 默认会自动调用父类无参的构造函数5.方法覆盖(重写)覆盖可以让子类将从父类继承来的方法进行扩展,提高代码复用性,减少冗余.覆盖时子父类的方法名子必须相同, 包括返回值,参数列表,并且子类的权限必须大于或等于父类.只能覆盖非私有方法.6.重载(Overload)和重写(Override)的区别:重载:名字相同,参数列表不同只与参数列表相同.重写:子父类的方法名子必须相同, 包括返回值,参数列表,子类的权限必须大于或等于父类.(如果父类返回值是一个类,子类返回值可以是和父类相同的类或其子类).7.向上转型子类可以当作父类使用, 因为父类的功能子类都有Fu f = new Zi();如果一个方法要求传入一个父类类型对象, 我们也可以传入一个子类对象8.强制类型转换在子类当作父类来用时, 不能调用子类特有的成员.如果一定要调用, 需要把父类类型强转回子类类型.这种转换叫强制类型转换, 在编译时不论类型是否匹配都不会报错, 为了程序安全, 通常在转换之前使用instanceof进行判断.3.17Object类及其中常用方法1.什么是Object类Object类是Java中所有类的父类, 如果定义一个类不继承任何类, 默认继承ObjectObject类中的方法会被所有的类继承2.finalize任何对象在成为垃圾被销毁之前, 都会调用finalize 方法Object类中的finalize方法是空的, 什么都没有当我们希望在对象被销毁之前执行一段代码, 就可以在类中重写finalize方法, 把要执行的代码写在方法中.3.toStringtoString方法可以将一个对象转为字符串表示形式Object类中的toString方法返回的是"类名@内存地址"当我们希望调用toString时返回成员变量的值, 就可以重写该方法调用System.out.println()方法时会自动打印对象toString的返回值4.equalsequals方法是用来比较两个对象的Object类中equals方法默认比较的是对象的地址如果我们希望比较两个对象的属性, 那么可以重写equals方法, 在方法内比较所有的属性在比较字符串时如果希望比较两个字符串的内容, 就需要使用equals, String类是重写了equals的3.18 组合设计模式1.什么是组合设计模式在我们定义一个类的时, 如果需要使用另外一个类的方法, 就可以用组合设计模式.2.组合设计模式的写法在类中定义一个被组合类型的成员变量通过构造函数组合一个对象, 用成员变量引用在方法中使用成员变量调用被组合对象的方法3.组合设计模式和继承的区别不占用继承的位置, 当前类组合一个类之后还能继承其他类组合设计模式组合的类不能当作被组合的类使用3.19 多态1.多态的体现父类引用指向子类对象.(父类的引用可以接受自己的子类).2.多态的前提类与类之间必须有关系,要么继承,要么实现.子类与父类存在覆盖,因为在不强转的情况下,父类,不能访问子类特有的方法.3.多态的好处提高代码扩展性.4多态的弊端虽然提高了扩展性,但是只能使用父类父类引用访问父类成员(共有成员),为了能访问子类特有方法,父类的引用必须转成子类类型(向下转型).3.20 抽象1.什么是抽象类用abstract修饰的类就是抽象类, 抽象类中可以定义抽象方法2.什么是抽象方法用abstract修饰的方法就是抽象方法, 抽象方法在子类中必须全部重写3.什么时候用抽象类和抽象方法在我们定义类的时候, 如果多个类有相同的方法, 那么就应该把这些方法抽取到父类中定义完全相同的方法直接在父类中定义并实现, 如果只有方法签名(无方法体)一样而实现不同, 那么就可以在父类中定义抽象方法这样别人看到父类的时候就知道子类都有什么功能了, 方便他人阅读我们的代码, 也更好的支持了多态.4.抽象类细节有抽象方法的类必须声明为抽象类, 抽象类可以没有抽象方法抽象类不能创建对象子类继承抽象类时必须重写所有的抽象方法3.21 final修饰符1. final代表最终的, 可以用来修饰类, 方法, 变量.2. 被final修饰后的特点final的类不能被继承final的方法不能被重写final的变量只能赋值一次,在程序运行结束前,会一直存在与内存中.如果内部类在局部位置上,只能访问该局部中被final 修饰的变量.被final修饰的形参,第一次赋值是在调用它所在的函数时,不能再次赋值了.被final修饰的引用类型变量,不能在指向其他对象,但是他第一次指向的对象中的内容是可以改变的.final 只是修饰了引用.public static final 修饰的变量时全局变量,可以使用类名调用,名字全部大写3.22模板设计模式1.什么是模板设计模式在编程的过程当中, 如果经常要做一些类似的事, 其中某些步骤相同, 有些步骤不同, 这是就可以使用模板设计模式2.怎么使用模板设计模式定义一个抽象类定义一个final的方法在方法中写出每次相同的步骤, 不同的步骤写成抽象方法, 调用抽象方法每次实现不同的步骤时, 定义子类继承抽象类, 重写抽象方法即可, 相同的步骤无需重写直接调用final方法3.23接口1.什么是接口接口是一种特殊的抽象类2.接口和抽象类的区别抽象类用abstract class定义, 接口用interface定义抽象类中可以有不抽象的方法, 接口中所有方法都是抽象的抽象类用extends继承, 接口用implements实现抽象类可以继承抽象类, 接口可以继承接口抽象可以继承接口,接口不能继承抽象因为抽象类里面有可能会有非抽象方法..抽象类中的方法没有默认修饰符, 接口中的方法默认是public abstract修饰的抽象类中的成员变量没有默认修饰符, 接口中的成员变量默认是public static final 修饰的一个类只能继承一个抽象类, 一个类可以实现多个接口3.什么时候用抽象类, 什么时候用接口能用接口的时候就不用抽象类(没有任何不抽象的方法), 因为接口不占用继承位置如果需要定义不抽象的方法, 那么就必须使用抽象类.3.24 策略设计模式定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。
Java知识点总结

JAVA知识点总结1.JAVA的特点:○1简单易用、完全面向对象;○2与平台无关性、可扩展性强;○3可移植性高、支持分布式编程;○4健壮、安全可靠并性能优异;○5支持多线程开发技术;○6支持动态开发。
2.JVM:Java虚拟机(JVM是Java实现跨平台的基础)。
Java的源程序(*.java)编译(命令:java+文件名.java)Java字节码(*.class编译时自动形成,与源程序名一致) 运行(命令:java+源程序的文件名) JVM(Windows、Linux)开发工具,Javac及基础核心类JDK运行环境,Java及基础核心类3.编写第一个Java程序:Java源文件扩展名为:”.java”一个源文件中最好只有一个java类,但是可以包含多个类public修饰的类,文件名与类名必须一致(包括大小写)被运行的类中需要有一个方法:public static void main(String[ ] args){}一个源文件中最多有一个public修饰的类例如:public class Test{public static void main(String args[]){System.out.println(“这个编写的第一个java程序!!!”);}}在运行程序之前先配置环境变量:path变量值为:JDK安装目录下\bin;classpath变量值为:JDK安装目录下\lib; 或 .;JDK安装目录下\lib\tools.jar 在dos命令窗口中输入以下命令进行运行:编译命令:javac Test.java运行命令:java Test生成文档命令:javadoc Test.java4.Java编程规范A、命名规定包:包名应该是小写的名词。
如:package shipping.objects类:类名应该是名词,大小写混合,每个单词的首字母大写。
如:class AccountBook接口:接口名的大小写应该与类名一样。
Java必备基础知识点(超全)

Java必备基础知识点(超全)Java基础1、简述Java的基本历史java起源于SUN公司的⼀个GREEN的项⽬,其原先⽬的是:为家⽤消费电⼦产品发送⼀个信息的分布式代码系统,通过发送信息控制电视机、冰箱等2、简单写出Java特点,写出5个以上,越多越好简单的、⾯向对象的、分布式的、安全的、稳定的、与平台⽆关的、可解释的、多线的、动态的语⾔。
3、什么是Java?JAVA:⼀种编程语⾔⼀种开发环境⼀种应⽤环境⼀种部署环境4、请写出Java的版本分类,以及每种版本的应⽤⽅向三种版本:JME:是⾯向内存有限的移动终端. 为消费性产品设计的;JSE:是SUN公司针对桌⾯开发和低端商务计算⽅案开发的版本。
为笔记本电脑、PC机设计的;JEE:是⼀种利⽤JAVA 2平台来简化企业解决⽅案的开发、部署和管理相关的复杂问题的体系结构。
为企业级的、服务器端的⾼端应⽤⽽设计的;5、描述Java技术的主要特性java虚拟机垃圾回收代码安全性如果你想学习Java可以来这个群,⾸先是⼆⼆零,中间是⼀四⼆,最后是九零六,⾥⾯有⼤量的学习资料可以下载。
6、描述 Java虚拟机的功能(1)通过 ClassLoader 寻找和装载 class ⽂件(2)解释字节码成为指令并执⾏,提供 class ⽂件的运⾏环境(3)进⾏运⾏期间垃圾回收(4)提供与硬件交互的平台7、简述Java代码安全性(1)编译时的错误检验(2)类装载检查,把本机上的类和⽹络资源类相分离,在调⼊类的时候进⾏检查,因⽽可以限制任何“特洛伊⽊马”的应⽤(3)字节码校验(4)沙箱机制,限定访问权限8、描述Java垃圾回收机制Java 编程语⾔解除了程序员释放内存的责任。
它可提供⼀种系统级线程以跟踪每⼀次内存的分配情况。
在 Java 虚拟机的空闲周期,垃圾收集线程检查并释放那些可被释放的内存。
垃圾收集在 Java 技术程序的⽣命周期中⾃动进⾏,它解除了释放内存的要求,这样能够有效避免内存漏洞和内存泄露(内存泄露就是程序运⾏期间,所占⽤的内存⼀直往上涨,很容易造成系统资源耗尽⽽降低性能或崩溃。
java基础知识点整理

java基础知识点整理1.&和&&的区别?&:逻辑与(and),运算符两边的表达式均为true时,整个结果才为true。
&&:短路与,如果第⼀个表达式为false时,第⼆个表达式就不会计算了。
2.在java中如何跳出当前的多重循环?在循环语句外前⾯定义⼀个标号,然后在⾥层循环体的代码中使⽤带有标号的break语句,即可跳出循环。
⽐如:3.最有效率的⽅法算出2X8等于⼏?使⽤位运算,效率最⾼:2<<3,表⽰2向左移动了3位,就相当于2乘以2的3次⽅,结果:16。
4.”==”和equals⽅法究竟有什么区别?==:表⽰两个变量的值是否相等,⽐较两个基本数据类型的数据或者引⽤变量,⽤==。
equals:⽤于⽐较两个独⽴对象的内容是否相同。
字符串的⽐较也⽤equals。
5. Int和integer的区别?Int是Java的8中基本数据类型之⼀,integer是int的封装类。
Int类型的默认值为0,integer默认值为null,所以区别在于,integer能区分出null值和0的区别。
6.三个与取整有关的⽅法:Math.ceil():表⽰向上取整;Math.ceil(11.3)=12;Math.ceil(-11.3)=-12。
Math.floor():表⽰向下取整;Math.floor(11.6)=11;Math.floor(-11.6)=-12。
Math.round():表⽰四舍五⼊;Math.round(11.5)=12;Math.round(-11.5)=-11;Math.round(11.3)=11;Math.round(-11.3)=-11;7.重载和重写的区别?重载(Overload):函数名相同,参数不同。
可以改变返回值类型,参数的个数和类型。
重写(Override):和⽗类的的⽅法名称、参数完全相同。
8.⾯向对象的特征?封装:将对象属性和⽅法的代码封装到⼀个模块中,也就是⼀个类中,保证软件内部具有优良的模块性的基础,实现“⾼内聚,低耦合”。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一天课程(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文件名.javaJava 运行命令java 类名Javadoc生成帮助文档命令 javadoc java文件面向对象的基本概念类 (属性方法构造方法 )对象对象创建传递销毁面向对象的三大基本特性:封装、继承、多态 OOP AOP类是由客观事物经过大脑抽象而形成概念,是对一类事物的描述使用class 关键字来描述类类中有属性和方法:属性对应的是事物的静态特性(可以叫做成员变量)方法对应的是事物的动态特性对象:是类的一个具体的实例化创建对象对象的方法:类名对象名= new 类名(); 调用类的构造方法来创建对象构造方法是特殊的方法:方法名=类名注意: 类中属性和方法必须在创建对象之后才能使用对象.属性对象.方法.表示引用第二天课程 (2012-7-11)JAVA语言描述类的声明语法格式:[< modifiers>] class < class_name> {[<attribute_declarations>][<constructor_declarations>][<method_declarations>]}修饰词class类名{属性定义部分<可选>构造方法 <可选>普通方法 <可选>}用于修饰class的关键字有两种:(1) public 公共的 (2)缺省不写表示当前类只能在同一个包中使用注意点:(1)一个java文件中最多只能有一个类被public 修饰,并且要求使用public修饰这个类的类名来作为该java文件的文件名。
(2)要求将来大家写代码的时候一个java文件一个类,并且该类用public修饰,类名与文件名相同类名 //规范一:类名要求首字母大写使用名词性词组(不能使用关键字)//要求编写代码统一对齐,要求整个java类中采用统一的缩进方式(2,4)声明属性:[<modifiers>] type < attr_name> [=defaultValue] ;修饰词数据类型属性名称[=默认初值];属性的修饰词四种: public公共的private 私有的default(默认) protected受保护的数据类型主要分成两大类:基本数据类型: 整型浮点型布尔型字符型引用数据类型:属性名称命名规范:要求首字母小写,从第二单词开始的首字母大写一般使用名词性词组方法的声明:[< modifiers>] <return_type> <name>([< argu_list>]) {[< statements>]Return ;}修饰词返回值类型方法名称(参数列表…){语句块;}方法的修饰词四种: public 公共的private 私有的 default(默认) protected受保护的返回值类型主要分成两大类 :基本数据类型:整型浮点型布尔型字符型引用数据类型:注意: (1) 如果没有返回值的话则使用void来声明(2) 方法的返回值只有一个方法名称命名规范:要求首字母小写,从第二单词开始的首字母大写一般使动词性词组注:在一个java类中允许出现多个同名的方法,但要求形参列表必须不一致(指的是参数的个数或参数的类型不一致)形参列表:数据类型1 参数名称1, 数据类型2 参数名称2,数据类型3参数名称3,…备注:JDK1.5之后java语言支持可变参数列表重点 :构造方法: 是一类特殊的方法功能:创建其所属类型的一个新的对象。
[< modifiers>] <class_name>([< argu_list>]) {ﻩ[< statements>]}修饰词类名(形参列表){语句块;}特殊点: (1)构造方法可以用于创建对象,可以直接使用,不需要通过对象来调用。
(2)在构造方法中需要完成对属性的初始化赋值。
(3)在一个类允许出现多个构造方法(4)每个类必须至少拥有一个构造方法该规则由JVM来保证:<a> 如果你编写的类没有写构造方法的话,则在该java文件编译的时候由编译器自动的为该类添加一个空的方法体的构造方法<b>如果你编写的类自带了构造方法的话,则在编译的时候,编译器不会再为你添加任何的构造方法实战开发建议: (1)当前类中如果没有构造方法的话,你就不要管了,如果写了构造方法的话,则要求把空的方法体的构造方法手动加上。
(2) 类体中书写规范属性构造方法关于属性的操作方法放在前面普通信息的封装和隐藏使用private 关键来修饰属性或方法以达到隐藏属性或方法的目的;注:private修饰的属性和方法只能在当前类中使用,其他所有的类都不能访问实际开发过程中类的属性要求全部使用private来修饰,同时必须要暴露一组public公共的方法来进行操作封装暴露一组public公共的方法对本类的私有属性进行操作的过程。
作业: (1) 第2章PPT中的练习(3)在昨天编写的类的基础上,使用封装和隐藏去进一步完善第三天课程(2012-7-12)Java 基础语法注释: 三种 // /**/ /** */标识符: 关键字不能做标识符由字母、数字、_、$ 组成 ,不能以数字开头$开头的一般表示为内嵌也可以表示成临时数据类型:基本类型整型 :byte 8 short 16int32 long 64 默认int浮点型: float 32 double 64 默认double float f = 3.14f;字符型: char关于字符的概念字符编码:ASCII编码 Unicode编码字符集:采用相同编码形式存放的字符的集合。
常用的字符集:中文GB2312 GBKGB18030拉丁italicUtf-8字符集ISO-8859-1常用转义字符: \n 换行 \r回车\t tab键 \\ \” \’布尔型: Boolean两种值true false引用类型作业: (1)引用类型的用法例子,去测试一把(2) 将值传递的例子测试(3)标准输入/输出自己完成对象构造和初始化注:类中的成员变量初始化由三步:(1)根据数据类型进行默认值的初始化要求掌握8种基本类及引用类型的默认值(2)根据default后的值来赋值,如果类的属性没有default值的话,则跳过该步骤(3)根据构造方法来赋值,如果没有构造方法的话,则跳过方法:类的动态属性类中方法存放在JVM内部的全局代码区注:(1)方法通常通过对象来调用,调用时必须注意实参列表与形参列表的个数、顺序、类型都必须一致。
(2)每个方法最后都会有return语句。
<1>如果该方法定义了返回值类型,则在方法体中肯定有return 语句,不能缺省,并且return返回的数据类型与返回值类型必须一致。
<2> 用void修饰的不需要返回值类型的方法,在JVM编译的时候自动会添加return;语句,所以不要自己写return 。
<3>特殊的构造方法,默认返回的就是本身的对象,所以也不需要写return语句,由jvm自动处理.变量局部变量: 写在方法或语句块内部的变量方法的形参作为局部变量来看待。
注: 要使用的话,必须要先声明和赋初值之后才能使用形参除外,原因在形参在方法被调用时也会根据传递进来的实参进行默认的初始化赋值成员变量: 也叫类的属性写在类的内部 ,在方法的外部的变量只要声明后就可以使用 ,原因在于成员变量在对象创建的时候会根据数据类型进行自动默认初始化赋值。
变量的作用范围:解决重名问题的规则:就近原则第四天课程 (2012-7-13)输入与输入Scanner 类的用法了解System.out.println() 用于向控制台输出任意类型的数据以后该语句只允许出现main()方法中。
在实际中主要用于调试System.out.printf(“%10.2f”,) //了解关键字this 重点有四种用法(1) 调用类的属性this.属性在构造方法中使用,给类的属性赋值,解决命名冲突问题。
(2)调用类的普通方法this.方法名()(3)调用构造方法this(参数列表..)注意: (1) this()该语句必须放在构造方法的第一条指令。
(2) 使用this()来调用构造方法的话,在本类中必须至少有一个不包含th is调用的构造方法作为退出构造来使用(4) 表示当前对象 this ===运算符:Infinity在java语言中表示无穷大-NaN表示notanumber不是一个数字负数的二进制->负十进制的转换(1)-1 (2)取反(3)转换为十进制 (4)*-1负十进制的转换- > 负数的二进制(1)取绝对值(2)转为二进制(3)取反(4)+1作业: 八种基本类型的数据之间的转换第五天课程(2012-7-16)分支语句单路分支: if(条件){语句块}双路分支 : if(条件1){语句块1}else{语句块2}多路分支 : if (条件1){语句块1}else if (条件2)语句块2}else if(条件3){语句块3}else{语句块4}Switch(){Case :Break;Case :}题目:(1)接收键盘输入的学生的成绩输出该成绩所属的等级90~100 优秀 80~90 良 70~80中等 60~70及格 <60 不及格(2)接收键盘输入的三个数字,输出其中的最大值要求求三个数的最大值要编写一个方法(3)接收键盘输入的数字0星期日~ 6星期六输出对应的星期几(4)接收键盘输入的年份,输出是否为闰年要求专门编写一个方法来判断是否为闰年(5)接收键盘输入的年份和月份,输出该月有多少天循环语句For(初始化部分;循环条件部分 ; 迭代部分){循环体部分;}素数 : 除1和它本身之外,不能被其他任何数整除备注: 一般情况下循环最多只能使用两层嵌套重点: break; continue;Break标签名;指的是跳出标签名所指向的那一层循环题目:(1)求1~10的积(2)打印如下乘法口诀表1*1=11*2=2 2*2=41*3=3 2*3=6 3*3=9….1*9=9…. 9*9=81(3) 输出200~300之间的素数,要求每8个一行 (注:不允许使用continue 标签)(4)从键盘循环接收数据,求输入数据的和当接收到Y字符时退出退出时输出累计的和(6)打印出一个指定层数的菱形(6)打印出一个指定层数的空心菱形(思考题)第六天课程(2012-7-17)作业:编写程序,采用适当的循环和流控制语句实现下述功能:打印输出0~200之间能被7整除但不能被4整除的所有整数;要求每行显示6ﻩ个数据;递归:必须满足的两个条件:1、递推公式2、终止条件正态分布数组:熟练一维数组的定义、创建、赋值、取值、遍历、修改掌握二维数组了解多维数组数组中的每个元素相当于该对象的成员变量,也就意味着,数组创建的时候,每一个值首先会根据数据类型赋初值。