Java基础知识点复习资料

1、classpath的设置及作用:设置为set classpath=“绝对路径”。

作用是指定Java类的执行路径。

是用来寻找class文件的。

2、path的设置及作用:是内部命令。

在编译Java的时候需要用到javac命令在执行java的时候要用到java命令,这两个命令不时windows自带的命令,所以我们使用的时候要设置好环境变量,这样就可以在任何目录下使用了。

3、JA V A数据类型:基本数据类型(数值型(整型(byte.short.int.long)、浮点型(float.double))、字符型(char)、布尔型(boolean))、引用数据类型(class.数组、接口)。

4、JA V A基本运算符号:赋值运算符、算术运算符、关系运算符、逻辑运算符、条件运算符、括号运算符。

5、JA V A程序基本控制语句:1、if (判断条件){语句1;语句2;}2、if(判断条件){语句1;}else{语句2;}3、switch(表达式){case 选择值1;语句主体1;break;case 选择值2;语句主体2;break;case 选择值3;语句主体3;break;default:语句主体;}4、for(赋初始值;判断条件;赋值增减量){语句;}5、while(判断条件){语句1;语句2;}6、do{语句1;语句2;}while(判断条件);break跳出循环。

continue跳出本次循环进入到下次循环。

6、数组的概念及使用:数组是由一组相同类型的变量所组成的数据类型,它们以一个共同的名称来表示。

格式一:数据类型数组名[]数组名=new 数据类型[个数]例:int i[]i=new int[8]格式二:数据类型数组名[]=new 数据类型[个数]例:int i=new int[8]7、方法的声明及使用:完成某一特定功能的代码块。

返回值类型方法名称(类型参数1,类型参数2){程序语句;return表达式;}8、方法的重载:在同一个类中允许同时存在一个以上的同名方法,只要他们的数据类型参数个数不同即可。

例如:public static int Test(int i,intj){return i+j;public static int Test(int x){return x++;}pubic static double Tset(double m,double n){return m+n;}public static int Test(int a,int b,int c){return a-b+c;}}在程序中Test方法被重载了4次,但每个重载了的方法所能接受参数的个数和类型不同。

9、类的定义:将具有相同属性及相同行为的一组对象称为类。

广义的讲,具有共同性质的事物的集合就称为类。

class 类名称{数据类型属性;// 声明成员变量(属性)返回值的数据类型方法名称(参数1,参数2){程序语句;return 表达式;//定义方法的内容}}例:Person.javaClass Person{String name;int age;void talk(){System.out.println("我是:"+name+",今年:"+age+"岁");}}10、对象的产生与使用:对象产生的基本形式类名对象名=new 类名()对象可以调用类中的方法访问类中的成员变量,形势为对象.属性对象.方法名()11、匿名对象:没有明确的声明对象,也可以理解为只使用一次的对象,即没有任何一个具体的对象名称引用它。

12.实现类的封装性封装了相关的成员和方法,通过访问权限来使用内部的东西。

13.构造方法的定义与使用构造方法的定义方式:class 类名称{访问权限类名称(类型1 参数1,类型2 参数2){语句;}}注意:1.构造方法的名称必须和类名一致。

2.构造方法无返回值。

例:class pig{public pig(){System.out.println(“It’s a pig.”);}}14. 对象的比较(“==”、“equals()”“==”比较的是对象所指的引用“equals()”比较的是对象。

15.在类内部调用本类方法范例:TestJavaThis1.javaclass Person{String name;int age;public Person(){System.out.println(“1.public Person()”);}public Person(String name,int age){//调用本类中无参构造方法this();16.this关键字的使用1.用来区分成员变量和局部变量.2.用来表示本类内部的构造方法.(this 必须放在构造方法中的第一行)范例:TestJavaThis.javaclass Person{private String name;private int age;public Person(String name, int age){ = name;this.age = age;}public String talk(){return “我是: ”+name+”,今年: “+age+”岁”;}}public class TestJavaThis{public static void main(String[] args){Person p = new Person(“张三”,25);System.out.println(p.talk());}}输出结果:我是:张三,今年:25岁17.构造方法的重载1.方法名字相同2.参数的类型、排列方式、个数不同例如:public static int Test(int i,intj){return i+j;public static int Test(int x){return x++;}pubic static double Tset(double m,double n){return m+n;}public static int Test(int a,int b,int c){return a-b+c;}}在程序中Test方法被重载了4次,但每个重载了的方法所能接受参数的个数和类型不同。

18.对象的引用传递例:S1=”abc”S2=”bcd”S1=S2把S2所指的引用”bcd”赋给了S1,这时S1的引用就是”bcd”。

19.static的使用(方法、属性)1、static:静态方法:1直接用类名来调用2一个静态方法可以直接调用另一静态方法调用非静态方法时用对象调用3静态方法中不能用this、super4静态方法不能调用非静态方法中的属性。

Static声明的成员变量为全局变量局部变量不能声明成static。

静态代码块是在static后加个大括号作用是给静态成员赋值。

20.对象数组的使用(静态初始化、动态初始化)1 数组是多个相同类型数据的集合,实现对这些数据的统一管理。

2 数组是引用数据类型,数组型数据是对象(object),数组的每个元素相当于该对象的成员变量。

3 数组中的元素可以是任何数据类型,包括基本类型和引用类型。

一维数组声明一维数组的声明方式:Type var[]或type[] var;例如:int a[]; int[] a; double b[];注!Java语言中声明数组时不能指定其长度(数组中元素的个数),例如:int a[]5; //错误的正确的写法:int[] a; (数据类型数组名[];//声明一维数组a = new int[5]; 数组名= new 数据类型[个数])//分配内存给数组创建基本一维数组public class Test{public static void main(String[] args){int[] s;s = new int[10];for(int i=0;i<10;i++){s[i]=2*i+1;System.out.println(s[i]);}}}编译结果:E:\>java Test13579111315171921.类的继承通过继承可以简化类的定义,扩展类的功能。

实现继承的方法:class子类extends父类。

例:Class A{String name;int age;}Class B extends A{String school ;}public class Test{public static void main(String args[]){B s=new B( );=”周洋”;s.age=”23”;s.school=”绥化学院”;System.out.println(“姓名:”++”,年龄:”+s.age+”,学校:”+s.school);}}22.子类对象的实例化过程子类对象在实例化时会默认先去调用父类中的无参构造方法,之后再调用子类中的相应构造方法。

依次执行范例:TestPersonStudentDemol.javaclass Person{String name;Int age;//父类的构造方法public Person(){System.out.println(“1.public Person(){}”);}}class Student extends Person{String school;//子类的构造方法Public Student(){System.out.println(“2.public Student(){}”);}}public class TestPersonStudentDemol{public static void main(String[] args){Student s = new Student();}}输出结果:1.public Person(){}2.public Student(){}23.方法的覆写当一个子类继承一个父类,而子类中的方法与父类中的方法的名称,参数个数、类型完全一致时,就称子类中的这个方法覆写了父类中的方法。

特点:1、两个类存在继承关系;2、子类里写了一个方法,方法的声明与父类一致。

例如:class Person{public void test(){System.out.println(“Person”);}}class Student extends Person{public void test(){System.out.println(“Student”);}}24.super的使用super关键字出现在子类中,用super去调用父类中的有参的构造方法,所以super主要功能是完成子类调用父类的内容,也就是调用父类中的构造方法。

合集下载

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基础知识点

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

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

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

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

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

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

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

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

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

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

java期末考点总结

java期末考点总结

java期末考点总结一、基础知识1. Java语言的起源和特点2. Java开发环境的配置和使用3. Java程序的基本结构和语法规则4. 数据类型和变量5. 运算符和表达式6. 控制流程和循环结构二、面向对象编程1. 面向对象的基本概念和原则2. 类和对象的定义和使用3. 封装、继承和多态4. 接口和抽象类5. 继承和多态的应用6. 继承和接口的区别三、异常处理1. 异常的概念和分类2. 异常的处理机制3. try-catch语句的使用4. finally语句的作用5. 异常的抛出和捕获6. 自定义异常四、常用类库1. String类的常用方法2. Math类和常用数学方法3. Date类和Calendar类的使用4. 集合框架和常用集合类5. IO流的使用6. 文件的读写操作五、多线程编程1. 进程和线程的概念2. 创建线程和实现Runnable接口的区别3. 同步和互斥的实现4. 线程的状态和控制5. 线程的优先级和调度6. 线程池的使用和管理六、网络编程1. 网络通信的基本概念和协议2. Socket编程和TCP/IP协议3. UDP协议和DatagramSocket类4. URL和URLConnection类的使用5. 服务器和客户端的通信6. HTTP协议和网页的访问七、图形用户界面1. AWT和Swing的区别和优缺点2. 组件的布局和事件处理3. 容器和组件的层次结构4. 图形用户界面的设计和优化5. 多线程和事件处理6. 用户界面的国际化和本地化八、数据库编程1. 数据库的基本概念和SQL语句2. JDBC的使用和连接数据库3. Statement和PreparedStatement的使用4. ResultSet的处理和数据库操作5. 事务和批处理的管理6. 数据库连接池的使用九、Web开发1. HTML和CSS的基本语法和标签2. JavaScript的基本语法和事件处理3. Servlet和JSP的概念和使用4. MVC模式的理解和应用5. 数据库连接和数据处理6. Web应用的发布和部署十、设计模式1. 设计模式的基本概念和分类2. 单例模式和工厂模式的实现3. 观察者模式和适配器模式的应用4. MVC模式和策略模式的理解和应用5. 模板方法模式和装饰者模式的实现6. 设计模式的优缺点和使用场景以上是Java期末考点的总结,希望能帮助你复习和理解Java编程的重要知识点。

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

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

第一讲 Java语言入门1.1 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左右。

java考试大纲

java考试大纲

java考试大纲Java考试大纲一、Java语言基础1. Java语言概述- Java的起源、特点、应用领域- Java开发环境的搭建(JDK、IDE)2. 基本语法- 标识符、关键字、数据类型、变量- 运算符、表达式、语句3. 控制流程- 条件语句(if、switch)- 循环语句(for、while、do-while)- 跳转语句(break、continue、return)4. 数组- 一维数组和二维数组的定义和使用- 数组的遍历、查找、排序5. 字符串- 字符串的定义、赋值、连接- 字符串常用方法(indexOf、substring、replace等)二、面向对象编程1. 面向对象基础- 类和对象的概念- 封装、继承、多态的实现2. 类和对象- 类的定义、成员变量、方法- 对象的创建和使用3. 继承- 继承的概念、super关键字的使用- 方法重写(Override)4. 多态- 多态的概念、实现方式- 接口和抽象类的使用5. 包和访问控制- 包的概念、使用- 访问控制(public、private、protected)三、集合框架1. 集合概述- 集合框架的组成、特点2. List接口- ArrayList、LinkedList的特点和使用3. Set接口- HashSet、LinkedHashSet、TreeSet的特点和使用4. Map接口- HashMap、LinkedHashMap、TreeMap的特点和使用5. 集合的遍历和操作- 迭代器(Iterator)的使用- 增强型for循环四、异常处理1. 异常的概念- 异常的分类、处理机制2. 异常处理- try、catch、finally的使用- 自定义异常的创建和抛出3. 断言和错误- 断言(assert)的使用- 错误的分类和处理五、输入输出(I/O)流1. 流的概念- 流的分类、作用2. 字节流- InputStream、OutputStream的使用3. 字符流- Reader、Writer的使用4. 文件操作- 文件的创建、读取、写入、删除5. 缓冲流- BufferedInputStream、BufferedOutputStream等的使用六、多线程编程1. 线程的概念- 线程的生命周期、状态2. 线程的创建和启动- 继承Thread类、实现Runnable接口3. 线程的同步- 同步方法、同步代码块- 锁(Lock)的使用4. 线程间通信- wait、notify、notifyAll的使用5. 线程池- Executor框架的使用七、Java网络编程1. 网络基础- 网络通信的基本原理2. Socket编程- ServerSocket、Socket的使用3. URL和URLConnection- URL的解析、URLConnection的使用4. HTTP协议- HTTP请求和响应的处理八、Java数据库连接(JDBC)1. JDBC概述- JDBC的作用、组件2. 数据库连接- DriverManager、Connection的使用3. SQL语句执行- Statement、PreparedStatement的使用4. 结果集处理- ResultSet的使用5. 事务处理- 事务的概念、处理方式九、Java Web基础1. Web应用概述- Web应用的组成、运行环境2. Servlet技术- Servlet的概念、生命周期、配置3. JSP技术- JSP的概念、页面指令、内置对象4. 会话管理- Cookie、Session的使用5. MVC模式- MVC的概念、实现十、Java开发工具和环境1. 开发工具- Eclipse、IntelliJ IDEA等IDE的使用2. 版本控制- Git的基本使用3. 构建工具- Maven、Gradle的使用4. 持续集成- Jenkins等CI工具的使用5. 测试- JUnit等测试框架的使用本大纲涵盖了Java语言的基础知识、面向对象编程、集合框架、异常处理、I/O流、多线程编程、网络编程、JDBC、Web基础以及开发工具和环境等多个方面,旨在为学习者提供一个全面的Java学习路径。

java语言程序设计基础篇第八版复习题答案

java语言程序设计基础篇第八版复习题答案

java语言程序设计基础篇第八版复习题答案Java语言程序设计基础篇第八版复习题答案# 开始语复习题是检验学习效果的重要手段,以下是针对《Java语言程序设计基础篇第八版》的一些复习题答案,旨在帮助同学们巩固和检验所学知识。

# 复习题及答案1. 简述Java语言的特点。

答案:Java是一种面向对象的编程语言,具有跨平台性、安全性、健壮性、多线程等特点。

它通过Java虚拟机(JVM)实现“一次编写,到处运行”的口号。

2. 什么是面向对象编程(OOP)?答案:面向对象编程是一种编程范式,它使用“对象”来设计软件,这些对象可以包含数据(属性)和代码(方法)。

OOP的核心概念包括封装、继承和多态。

3. 解释Java中的封装、继承和多态。

答案:- 封装:隐藏对象的内部状态和实现细节,只暴露有限的操作界面。

- 继承:允许一个类(子类)继承另一个类(父类)的属性和方法。

- 多态:允许不同类的对象对同一消息做出响应,但具体的行为会根据对象的实际类型而有所不同。

4. 描述Java中的基本数据类型及其范围。

答案:Java中的基本数据类型包括:- `byte`:8位有符号整数,范围从 -128 到 127。

- `short`:16位有符号整数,范围从 -32,768 到 32,767。

- `int`:32位有符号整数,默认类型,范围从 -2^31 到 2^31-1。

- `long`:64位有符号整数,范围从 -2^63 到 2^63-1,必须以 L 或l 结尾。

- `float`:32位单精度浮点数。

- `double`:64位双精度浮点数,默认浮点数类型。

- `char`:16位Unicode字符。

- `boolean`:只有两个可能的值:true 和 false。

- `void`:表示没有任何值。

5. 什么是Java的自动装箱和拆箱?答案:自动装箱是Java自动将基本数据类型转换为对应的包装类的过程,例如将`int`转换为`Integer`。

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基础知识点整合

面向对象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语⾔的特点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版本中尚未使⽤,但以后版本可能会作为关键字使⽤变量:程序运⾏期间可以被改变的量。

java课堂笔记(全部基础知识)

Java_U1课堂笔记(一)初识Java一、配置Java环境变量:1、复制JDK安装路径,如:C:\Program Files (x86)\Java\jdk1.7.0_51\bin2、粘贴到我的电脑->属性->高级系统设置->环境变量->Path3、加上英文的分号4、验证是否配置正确:dos-->java -version进入DOS窗口的方法:运行(或快捷键windows键+r)二、Java程序编写三步骤:编写 .java编译:javac **.java运行java **三、使用jad反编译工具:DOS中切换至jad安装目录,如:C:\jad1.5.8g.win输入命令:jad -s java D:\t01\HelloWorld.class四、变量的使用:页脚内容1变量取名,命名规则类型数值:int、double、float(f)非数值:char、String类型名字= 值;int age=10;五、上机验证:System.out.println(5+3);System.out.println("5"+3);六、Scanner的使用,接收用户键盘输入Scannerimport java.util.Scanner;Scanner input=new Scanner(System.in);input.next();(相关方法,nextDouble()、nextFloat()、nextInt(等)bin:exejre页脚内容2libsrc.zip(二)数据类型一、数据类型转换自动类型转换:int num=100;double b=num;强制类型转换double num=100.9;int b=(int)num;二、运算符赋值运算符=算数运算符+ - * / % ++ --+= -= *= /= %=关系运算符> < >= <= == !=逻辑运算符&& || !页脚内容3条件运算符?:了解优先级即可三、流程控制1、if:基本ifif-else多重if嵌套if注意:条件是boolean值常见错误:if(num=5){}else{}大括号不省略多重if顺序问题注意:页脚内容4流程图的使用和问题的分析解决过程2、switch等值比较注意:(1)语法上的常见错误(2)和多重if的异同循环结构:解决重复性的操作简介高效(三)循环结构一:循环:(1)while循环while(条件){操作循环变量迭代}注意:页脚内容5代码缩进循环能否正常退出(2)do-while循环do{循环}while(条件);注意:代码缩进循环能否正常退出和while的区别:语法上、执行上(至少执行一次)(3)for循环for(变量初始化;条件;变量迭代){循环操作}页脚内容6注意:代码缩进循环能否正常退出执行顺序循环变量可以有多个二、双重循环双重循环的特点:外层循环进入一次,内层循环就要完整的执行一遍特点:外执行一次内执行一轮双重循环次数:外层循环次数*内层循环的次数实现的重点:页脚内容7(1)确定谁做外层循环,确定谁做内层循环(2)两层循环变量有没有规律性的关系1、打印图形:找规律矩形行i外层星星j内层1 52 53 54 55 5平行四边形行i外层内层:空格星星1 4=5-i 52 3=5-i 53 2=5-i 5页脚内容84 1=5-i 55 0=5-i 5等腰三角形行i外层内层:空格星星1 4=5-i 1=2*i-12 3=5-i 3=2*i-13 2=5-i 5=2*i-14 1=5-i 7=2*i-15 0=5-i 9=2*i-12、打印九九乘法表行i(1-9)第一个操作数i 第二个操作数(从1到i)三:循环应用1、分析需求:重复做一件事情前提条件(循环进入的条件)做什么事情(循环操作)页脚内容92、用代码解释选择一种合适的循环结构whiledo-whilefor根据所选择的结构套用语法while(条件){}do{}while(条件);for(循环变量初始化;条件;迭代){}3、容易出错的点(1)变量在何处声明例1:计算5门课平均成绩页脚内容10例2:for(int i=0;i<=6;i++){System.out.println(i);}int j=i;System.out.println(j);(2)没有适当的(合适的)跳出循环根本跳不出来根本进不去循环多或少循环了一次四、循环的跳转break:跳出整个循环continue:跳出本次循环,进入下次循环return:结束方法(了解即可)五、程序调试页脚内容11设置断点Debug->单步运行F5 F6观察变量(三)数组一、数组1、数组的基本使用(1)数组的作用一组相同数据类型的数数组也是变量,内存中一串连续的空间(2)数组的几个基本概念标识符(数组名字)元素下标:从0开始数据类型数组的长度(数组名字.length)(3)数组使用步骤声明数组页脚内容12int[] num;int num[];分配空间num=new int[8];赋值处理数据int[] num={5,8,7};int[] num=new int[]{5,8,7};(4)循环和数组结合的使用下标(0-数组.length-1)遍历时两种方法:方法一:传统for方法二://增强型for(foreach)for(int score:scores){sum+=score;页脚内容13}二、回顾数组变量,内存中一串连续的空间相同数据类型的一组数据数组的基本概念元素数据类型(数组类型)下标(0,数组.length-1)数组的长度:数组.length数组的基本使用声明数组(类型[] 数组名称或类型数组名称[])分配空间(数组名称= new 数据类型[5];)赋值(num[0]= ;)处理数据变量:基本数据类型页脚内容14int、double、float、char、boolean引用数据类型String、数组内存分布不同使用上不同.三、数组的典型使用1、求最大值、最小值(打擂台)2、插入算法(找位置)3、冒泡排序数组存储5个数字下标:0 1 2 3 4外层循环内层循环i:0第一轮+ j比较次数:4 =4:length-1页脚内容15i:1第二轮+ j比较次数:3=4:length-1i:2第三轮+ j比较次数:2 =4:length-1i:3第四轮+ j比较次数:1=4:length-1i+j=数组.length-1j=数组.length-1-i共比较几次?5个数字:4+3+2+1=106个数字:5+4+3+2+1=157个数字:6+5+4+3+2+1=21n个数字:(n-1)+(n-2)+(n-3)+.....+1=n*(n-1)/24、Arrays类的使用常用方法:页脚内容16sort().....记得查API帮助文档(帮助文档已经在网盘中提供了,如果大家在Oracle官网中没有下载,可以找中心的技术顾问老师提供网盘用户名和密码,登录后拿到帮助文档)数据类型基本数据类型int double char boolean 。

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