Java知识

合集下载

第1章Java 语言基础知识

第1章Java 语言基础知识
第1章Java 语言基础知识
2
目录
1.1 Java语言与面向对象的程序设计 1.2 Java5和Java6的新特色 1.3 Java程序概述 1.4 基本数据类型与表达式 1.5 数组的概念 1.6 数组的创建和引用 1.7 本章小结
3
1.1 Java语言与面向对象的程序设计
• Java语言是一个面向对象的程序设计语言。 • 除了面向对象的特点以外,Java语言还在安全性、
19
1.3.1 Java开发环境(续)
• Java 平台
Java 程序 Java APIs
Java 虚拟机
计算机系统
• Java APIs (应用程序接口)
▫ 经过编译的,可在程序中使用的Java代码标准库。
• Java VM(虚拟机)
▫ Java 程序由Java虚拟机程序执行(或解释执行)。
1.3 Java程序概述
}
1.1 Java语言与面向对象的程序设计
8
1.1.1 面向对象的程序设计思想(续)
• 面向对象技术给软件发展带来的益处
▫ 可重用性 ▫ 可靠性
• 面向对象语言的基本特征
▫ 抽象和封装 ▫ 继承性 ▫ 多态性
1.1 Java语言与面向对象的程序设计
9
1.1.2 Java语言的特点
• 面向对象 • 安全性
▫ Servlet用到的包在J2EE的API中能找到 ▫ 所有的servlet都必须实现Servlet接口
1.3 Java程序概述
36
1.3.4 Servlet举例(续)
——例1-3
程序首先构建HttpServletRequest,并建立一个数据表 单;点击submit按钮后,servlet再次被调用,并产生一个 含有表单的网页。

java的知识框架

java的知识框架

java的知识框架
Java的知识框架涵盖多个方面,以下是一些主要的知识点:
基础语法:包括变量、数据类型、运算符、控制流程等基础概念。

面向对象编程(OOP):封装、继承、多态等概念,以及类和对象的使用。

集合框架:包括List、Set、Map等集合类的使用。

多线程编程:理解线程、同步、锁等概念,以及Java中的线程操作和管理。

异常处理:学习如何处理异常和错误。

I/O流:文件读写、网络通信等输入输出操作。

反射:动态获取类信息、调用方法等。

数据库访问:JDBC的使用,与数据库的交互。

图形用户界面(GUI):使用Swing或JavaFX构建图形化用户界面。

网络编程:理解Socket编程和相关网络通信概念。

框架和库:Spring框架、Hibernate等,了解常用的Java框架和第三方库。

设计模式:常见的设计模式,如单例模式、工厂模式等。

Java虚拟机(JVM):Java程序的运行原理,垃圾回收等。

注解:自定义注解和注解处理器。

Web开发:Servlet、JSP、Spring MVC等,了解Java在Web开发中的应用。

这只是一个大致的概述,Java作为一门多用途、跨平台的编程语言,其知识框架会因应用领域的不同而有所差异。

深入理解这些知识
点,能够帮助你更好地应对Java开发中的各种挑战。

java基础知识点

java基础知识点

java基础知识点
1、面向对象:Java语言是一种面向对象的编程语言,它使用Java类和Java对象来构建复杂的系统。

Java类包含方法(程序执行的语句)和属性(关于对象的信息)。

可以使用对象间的关系(如继承和实现)来“重用”代码。

2、语言基础:Java语言是一种类型安全的、健壮的和高效的编程语言,它具有静态类型系统、异常处理、泛型和沙箱安全机制等功能。

这种类型安全指的是Java可以通过显式声明变量的数据类型来确保变量的内容。

3、继承:Java支持继承机制,可以将多个类“组装”在一起,互相共享代码并复用属性和方法。

继承是一种多态性,它允许每个类“定义”它自己独有的行为,但与同一父类共享相同接口。

4、包:Java使用java包来组织类和接口,它提供了独立的命名空间,可以将相似的类和接口组装在一起,以保持代码整洁和可维护性。

5、容器:容器是Java中的一种特殊数据类型,它可以储存和管理多个对象。

Java提供了多种容器,比如ArrayList,Map,HashMap 等,帮助程序员管理复杂的系统。

java知识点总结

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复习期末重点考点总结一、基本语法1. 变量和常量定义变量和常量,变量的作用域,变量类型转换等。

2. 数据类型Java的基本数据类型,如整型、浮点型、字符型、布尔型等。

3. 运算符Java的运算符,如算术运算符、关系运算符、逻辑运算符、位运算符等。

4. 控制结构条件语句,如if语句、switch语句。

循环语句,如for循环、while循环、do-while循环。

5. 数组一维数组、多维数组的定义和使用。

6. 方法定义方法,方法的重载、调用以及参数传递。

7. 异常处理Java的异常处理机制,如try-catch-finally语句块。

常见的异常类及其使用。

二、面向对象1. 类和对象类和对象的定义,成员变量和成员方法的访问权限。

2. 构造方法和析构方法构造方法和析构方法的定义和使用。

3. 继承子类和父类的关系,继承的实现和使用。

方法重写和父类引用子类对象的特点。

4. 接口接口的定义和实现,接口的多继承。

多态的概念和实现,向上转型和向下转型。

6. 包包的定义和使用,包的导入和导出。

三、输入输出1. 文件操作文件的读取和写入,字符流和字节流的使用。

2. 序列化和反序列化对象的序列化和反序列化,使用序列化实现对象的存储和传输。

四、集合框架1. 集合接口和类常用集合接口和类的介绍和使用,如List、Set、Map等。

2. 迭代器集合的迭代器,实现对集合元素的遍历和操作。

3. 泛型泛型的概念和使用,泛型类和泛型方法。

4. 排序和比较使用集合框架实现元素的排序和比较。

五、线程1. 线程的创建和启动线程的创建方式,使用Thread类和Runnable接口。

2. 线程同步线程同步的方法,如使用synchronized关键字实现线程同步。

3. 线程通信线程之间的通信方式,如使用wait()、notify()、notifyAll()方法进行线程通信。

线程池的定义和使用,使用线程池实现线程的复用。

六、网络编程1. 套接字套接字的概念和使用,使用套接字实现网络通信。

Java编程知识总结

Java编程知识总结

Java编程知识总结Java是一种面向对象的编程语言,在当今的编程界具有重要的地位。

它具有简单易学、跨平台、丰富的库以及广泛的应用领域等优点,因此备受广大程序员的欢迎。

本文将总结Java编程知识,包含Java的基础知识、高级特性、开发工具和经验分享等方面的内容。

一、Java基础知识Java的基础知识包括语法、数据类型、流程控制、方法、数组等方面。

1.语法Java的语法与C++和C有很多相似之处,但也有许多不同之处。

Java的代码都是以类的形式组织,而在类内则是由方法来组成。

Java的语法比较严谨,对于代码格式有较高的要求。

例如,Java中要求每一个语句以分号结尾。

另外,在Java中,大小写具有区别性。

2.数据类型Java的数据类型与C++和C的数据类型类似,主要包括基本数据类型和引用数据类型。

Java的基本数据类型有byte、short、int、long、float、double、char和boolean等八种,其中char和boolean类型的变量必须进行初始化。

Java的引用数据类型包括数组、类、接口和枚举等。

3.流程控制Java中的流程控制主要有分支结构和循环结构两种。

其中,Java的if、else和switch等分支结构与C++和C的分支结构类似,但Java中的循环结构使用更加灵活,包括for、while、do-while等循环语句。

4.方法Java中的方法是一种封装代码的方式,也是Java中最基本的组织方式。

方法可以接受参数和返回值,可以在其他方法内部或外部被调用。

Java方法的定义形式为“访问修饰符返回值类型方法名(参数类型参数名)”。

5.数组Java中的数组是一种引用数据类型,可以存储多个相同数据类型的值。

Java中的数组可以被初始化并赋予初值,数组的下标从0开始。

Java中使用数组的方式与C++和C的方式类似。

二、Java高级特性Java的高级特性包括多线程、反射、注解和泛型等方面。

java基础知识点整合

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基础知识总结(超详细整理)

Java基础知识总结(超详细整理)Java语⾔的特点1.⾯向对象⾯向对象(OOP)就是Java语⾔的基础,也是Java语⾔的重要特性。

⾯向对象的概念:⽣活中的⼀切事物都可以被称之为对象,⽣活中随处可见的事物就是⼀个对象,我们可以将这些事物的状态特征(属性)以及⾏为特征(⽅法)提取并出来,并以固定的形式表⽰。

2.简单好⽤Java语⾔是由C和C++演变⽽来的,它省略了C语⾔中所有的难以理解、容易混淆的特性(⽐如指针),变得更加严谨、简洁、易使⽤。

3.健壮性Java的安全检查机制,将许多程序中的错误扼杀在摇蓝之中。

另外,在Java语⾔中还具备了许多保证程序稳定、健壮的特性(强类型机制、异常处理、垃圾的⾃动收集等),有效地减少了错误,使得Java应⽤程序更加健壮。

4.安全性Java通常被⽤在⽹络环境中,为此,Java提供了⼀个安全机制以防恶意代码的攻击,从⽽可以提⾼系统的安全性。

5.平台⽆关性Java平台⽆关性由Java 虚拟机实现,Java软件可以不受计算机硬件和操作系统的约束⽽在任意计算机环境下正常运⾏。

6.⽀持多线程在C++ 语⾔没有内置的多线程机制,因此必须调⽤操作系统的多线程功能来进⾏多线程程序设计,⽽ Java 语⾔却提供了多线程⽀持。

多线程机制使应⽤程序在同⼀时间并⾏执⾏多项任务,该机制使得程序能够具有更好的交互性、实时性。

7.分布式(⽀持⽹络编程)Java语⾔具有强⼤的、易于使⽤的⽹络能⼒,⾮常适合开发分布式计算的程序。

java中提供了⽹络应⽤编程接⼝(),使得我们可以通过URL、Socket等远程访问对象。

8.编译与解释共存Java语法基础标识符: ⽤来标识类名、对象名、变量名、⽅法名、类型名、数组名、⽂件名的有效字符序列。

合法的标识符:由字母、数字、下划线“_”、美元符号“$”或者“¥”组成,并且⾸字符不能是数字。

不能把java关键字和保留字作为标识符。

标识符对⼤⼩写敏感。

关键字:Java语⾔中已经赋予了特定含义的保留字: const、goto,Java版本中尚未使⽤,但以后版本可能会作为关键字使⽤变量:程序运⾏期间可以被改变的量。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Java知识1.每个float类型后面都有一个标志“F”或“f”,有这个标志就代表是float类型,float y =100.00f;2.double 类型有效数字最长为15 位,double 后面也带有标志“D”或“d”3.double x =23.45D;4.double y =422.22d;5.double z =562.234;1.7自动数据类型转换自动转换按从低到高的顺序转换强制转换的格式是在需要转型的数据前加上“( )”,然后在括号内加入需要转化的数据类型x =(int)34.56+(int)11.2;// 丢失精度2.5Java数组的定义和使用Java 中定义数组的语法有两种:type arrayName[];type[] arrayName;Java在定义数组时并不为数组元素分配内存,因此[ ]中无需指定数组元素的个数,即数组长度。

而且对于如上定义的一个数组是不能访问它的任何元素的,我们必须要为它分配内存空间,这时要用到运算符new,其格式如下:arrayName=new type[arraySize]; arraySize 为数组的长度,type 为数组的类型1.demoArray=new int[3];数组的初始化1.可以在声明数组的同时进行初始化(静态初始化),int intArray[]={1,2,3,4};1.也可以在声明以后进行初始化(动态初始化)f// 动态初始化float floatArray[]=new float[3];floatArray[0]=1.0f;floatArray[1]=132.63f;floatArray[2]= 100F;数组引用可以通过下标来引用数组:arrayName[index];与C、C++不同,Java对数组元素要进行越界检查以保证安全性。

每个数组都有一个length属性来指明它的长度,例如intArray.length 指明数组intArray 的长度。

数组的遍历:经常需要遍历数组以获取数组中的每一个元素Java提供了”增强版“的for循环,专门用来遍历数组,语法为:1.for( arrayType varName: arrayName )2.{3.// Some Code4.}arrayType 为数组类型(也是数组元素的类型);varName 是用来保存当前元素的变量,每次循环它的值都会改变;arrayName 为数组名称二维数组;声明、初始化和引用与一维数组相似1.int intArray[][]={{1,2},{2,3},{4,5}};静态初始化一个二维数组2.int a[][]=new int[2][3];动态初始化一个二维数组3.a[0][0]=12;4.a[0][1]=34;2.6Java字符串(String)在Java中,可以使用下面的方法定义字符串:String stringName = "string content";例子;1.String url ="";2.String webName ="微学苑";字符串可以通过“+”连接,基本数据类型与字符串进行“+”操作一般也会自动转换为字符串,3.1Java类的定义及其实例化下面通过一个简单的例子来理解Java中类的定义:1.public class Dog{2. String name;3.int age;4.5.void bark(){// 汪汪叫6. System.out.println("汪汪,不要过来");7.}8.9.void hungry(){// 饥饿10. System.out.println("主人,我饿了");11. }12.}对示例的说明:∙public 是类的修饰符,表明该类是公共类,可以被其他类访问。

修饰符将在下节讲解。

∙class 是定义类的关键字。

∙Dog 是类名称。

∙name、age 是类的成员变量,也叫属性;bark()、hungry() 是类中的函数,也叫方法。

构造方法在类实例化的过程中自动执行的方法叫做构造方法,它不需要你手动调用。

构造方法可以在类实例化的过程中做一些初始化的工作创建对象对象是类的一个实例,创建对象的过程也叫类的实例化。

对象是以类为模板来创建的在Java中,使用new关键字来创建对象,一般有以下三个步骤:∙声明:声明一个对象,包括对象名称和对象类型。

∙实例化:使用关键字new来创建一个对象。

∙初始化:使用new创建对象时,会调用构造方法初始化对象。

例如:1.Dog myDog;// 声明一个对象2.myDog =new Dog("花花",3);// 实例化也可以在声明的同时进行初始化:1.Dog myDog =new Dog("花花",3);访问成员变量和方法通过已创建的对象来访问成员变量和成员方法1.// 实例化2.Dog myDog =new Dog("花花",3);3.// 通过点号访问成员变量;5.// 通过点号访问成员方法6.myDog.bark();3.2Java访问修饰符(访问控制符)Java 通过修饰符来控制类、属性和方法的访问权限和其他功能,通常放在语句的最前端。

访问控制和继承∙父类中声明为public的方法在子类中也必须为public。

∙父类中声明为protected的方法在子类中要么声明为protected,要么声明为public。

不能声明为private。

∙父类中默认修饰符声明的方法,能够在子类中声明为private。

∙父类中声明为private的方法,不能够被继承。

如何使用访问控制符访问控制符可以让我们很方便的控制代码的权限:∙当需要让自己编写的类被所有的其他类访问时,就可以将类的访问控制符声明为public。

∙当需要让自己的类只能被自己的包中的类访问时,就可以省略访问控制符。

∙当需要控制一个类中的成员数据时,可以将这个类中的成员数据访问控制符设置为public、protected,或者省略。

3.3Java变量的作用域在Java中,变量的作用域分为四个级别:类级、对象实例级、方法级、块级。

类级变量又称全局级变量或静态变量,需要使用static关键字修饰,类级变量在类定义后就已经存在,占用内存空间,可以通过类名来访问,不需要实例化对象实例级变量就是成员变量,实例化后才会分配内存空间,才能访问方法级变量就是在方法内部定义的变量,就是局部变量块级变量就是定义在一个块内部的变量,变量的生存周期就是这个块,出了这个块就消失了,比如if、for 语句的块。

块是指由大括号包围的代码,说明:∙方法内部除了能访问方法级的变量,还可以访问类级和实例级的变量。

∙块内部能够访问类级、实例级变量,如果块被包含在方法内部,它还可以访问方法级的变量。

∙方法级和块级的变量必须被显示地初始化,否则不能访问。

演示代码:复制纯文本新窗口1.public class Demo{2.public static String name ="微学苑";// 类级变量3.public int i;// 对象实例级变量4.5.// 属性块,在类初始化属性时候运行6.{7.int j =2;// 块级变量8.}9.10. public void test1(){11. int j =3;// 方法级变量12. if(j ==3){13. int k =5;// 块级变量14. }15. // 这里不能访问块级变量,块级变量只能在块内部访问16. System.out.println("name="+ name +", i="+ i +", j="+ j);17. }18.19. public static void main(String[] args){20. // 不创建对象,直接通过类名访问类级变量21. System.out.println();22.23. // 创建对象并访问它的方法24. Demo t =new Demo();25. t.test1();26. }27.}3.4Java this关键字详解this 关键字用来表示当前对象本身,或当前类的一个实例,通过this 可以调用本对象的所有方法和属性1.public class Demo{2.public int x =10;3.public int y =15;4.5.public void sum(){6.// 通过 this 点取成员变量7.int z =this.x +this.y;相当于执行int z = obj.x + obj.y;。

8. System.out.println("x + y = "+ z);9.}10.11.public static void main(String[] args){12. Demo obj =new Demo();13. obj.sum();14.}15.}obj 是Demo 类的一个实例,this 与obj 等价使用this区分同名变量1.public class Demo{2.public String name;3.public int age;4.5.public Demo(String name,int age){ = name;/////////////////////7.this.age = age;///////////////////////8.}3.5Java方法重载在Java中,同一个类中的多个方法可以有相同的名字,只要它们的参数列表不同就可以,这被称为方法重载参数列表又叫参数签名,包括参数的类型、参数的个数和参数的顺序,只要有一个不同就叫做参数列表不同。

重载是面向对象的一个基本特性。

说明:∙参数列表不同包括:个数不同、类型不同和顺序不同。

∙仅仅参数变量名称不同是不可以的。

∙跟成员方法一样,构造方法也可以重载。

∙声明为final的方法不能被重载。

∙声明为static的方法不能被重载,但是能够被再次声明。

方法的重载的规则:∙方法名称必须相同。

∙参数列表必须不同(个数不同、或类型不同、参数排列顺序不同等)。

∙方法的返回类型可以相同也可以不相同。

∙仅仅返回类型不同不足以成为方法的重载。

方法重载的实现:方法名称相同时,编译器会根据调用方法的参数个数、参数类型等去逐个匹配,以选择对应的方法,如果匹配失败,则编译器报错,这叫做重载分辨。

3.6Java类的基本运行顺序1.public class Demo{2.private String name;3.private int age;4.5.public Demo(){6. name ="微学苑";7. age =3;8.}9.public static void main(String[] args){10. Demo obj =new Demo();11. System.out.println( +"的年龄是"+ obj.age);12.}13.}基本运行顺序是:1. 先运行到第9 行,这是程序的入口。

相关文档
最新文档