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

java基础知识总结java基础知识总结pptjava基础知识总结篇(一):Java基础知识总结1.什么是类和对象?__ING IS OBJECT(万物皆对象)所有的事物都有两个方面:有什么(属性):用来描述对象。
能够做什么(方法):告诉外界对象有那些功能。
对象:对现实世界中的实体的抽象。
在计算机中,是指可标识的存储区域。
类:具有共同属性和行为的对象的抽象。
类是创建对象的模板。
2.为什么要使用面向对象?首先,面向对象符合人类看待事物的一般规律。
对象的方法的实现细节对其他对象是屏蔽的。
我们通过类来看待对象,类是对象的抽象。
其次,采用面向对象方法可以使系统各部分各司其职、各尽所能。
对象之间的耦合性一定要低。
这样才能使每个对象本身做成最好的。
对于对象的要求:高内聚、低耦合,这样容易拼装成为一个系统。
实现高内聚就是要最大限度低提高复用性(复用性好是因为高内聚)。
可复用性是OOP的基础。
3.面向过程思想和面向对象思想比较?面向过程的思想:由过程、步骤、函数组成,以过程为核心;面向对象的思想:以对象为中心,先开发类,得到对象,通过对象之间相互通信实现功能。
4.实例变量和局部变量的比较实例变量:定义在类中但在任何方法之外。
(New出来的均有初值)局部变量:定义在方法之中的变量。
局部变量要先赋值,再进行运算,而实例变量均已经赋初值。
这是局部变量和实例变量的一大区别。
实例变量的对象赋值为null。
不允许在同一作用域内定义两个相同名称的实例变量和局部变量,但实例变量和局部变量允许命名冲突。
区分实例变量和局部变量时一定要写this。
5.介绍一下对构造函数的理解构造方法是当用类生成对象时,系统在生成对象的过程中利用的方法。
注意:构造方法在生成对象的时候会被调用,但并不是构造方法生成了对象。
构造方法没有返回值。
格式为:public 方法名。
构造方法的方法名与类名相同。
构造方法是在对象生成的过程中自动调用,不可能利用指令去调用。
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语言入门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知识点总结

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复习期末重点考点总结一、基本语法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基础知识

在程序中操作对象是类的一个实例 即对象 在程序中操作对象是类的一个实例:即对象 创建一个对象 Hello obj=new Hello(); 调用方法 obj.showString("Hello World!")
11
1.1 有关面向对象的概念 什么是封装 什么是封装? 封装把对象的所有组成部分组合在一起,封 封装把对象的所有组成部分组合在一起, 装定义程序如何引用对象的数据, 装定义程序如何引用对象的数据,封装实际
}
15
1.1 有关面向对象的概念 什么是方法的重载 多态性 ? 什么是方法的重载(多态性 多态性)? 在同一个类中至少有两个方法用同一个名字, 在同一个类中至少有两个方法用同一个名字, 但有不同的参数. 但有不同的参数.
123
void show(int int_num) void show(double double_num) void show(nit nit_ um, float float_um)
25
1.6 Java中的字符串 中的字符串 StringBuffer的字符串的内容是可以改变的 的字符串的内容是可以改变的 创建StringBuffer对象 创建 对象 StringBuffer str=new Stringbuffer("hello"); 获取StringBuffer对象的信息 获取 对象的信息 int len=str.length();
20
1.4 你的第一个 你的第一个Java程序 程序
21
1.5 Java类型系统 类型系统
Java type system
primitive
reference
null
char integral
numeric
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
高竞争的情况下, 性能下降比较快
多线程
AQS(AbstractQuenedSynchronizer)
构建同步锁的框架
JUC
CountDo wnLatch
CyclicBar rier
Semapho r
阻塞当前线程,等所有的线程都处理后, 在运行
数据库
innoDb
优点
索引组织 表
存储方式
索引使用 的是B+树
优点
支持事 务
行级锁
存储方式
共享表空间存储
所有表的数据文件和索引文件都保存在 一个表空间里,一个表空间可以有多个文 件,通过innodb_data_file_path和 innodb_data_home_dir参数设置共享 表空间的位置和名字,一般共享表空间的 名字叫ibdata1-n。
核心参数
keepAliveTime
非核心线程能够空闲的最长时间,超过时间,线程终止。这个参数默认只 有在线程数量超过核心线程池大小时才会起作用。只要线程数量不超过核 心线程大小,就不会起作用。
核心参数
unit
时间单位:与keepAliveTime配合使用
核心参数
workQueue
缓存队列,用来存放等待被执行的任务。
dExecutor
0 2
FixedThread
Pool
0 3
CachedThre
adPool
0 4
ScheduledT
hreadPool
0 5
核心参数
SingleThreadEx ecutor
这个线程池只有一个核心线程 在 工 作 ,也 就 是 相 当 于 单 线 程 串 行 执 行 所 有 任 务 。如 果 这 个 唯 一 的 线 程 因 为 异 常 结 束 ,那 么会有一个新的线程来替代它。 此线程池保证所有任务的执行 顺序按照任务的提交顺序执行
JAVA知识梳理
演讲人
2 0 2 5 - 11 - 11
01
多线程
多线程
线程池 volatile作用
ReentrantLock与 Synchronized
AQS(AbstractQue nedSynchronizer)
CAS(CompareAnd-Swap)
多线程
线程池
0 1
SingleThrea
threadFactor y
线程工厂,用来创建线程, 一般有三种选择策略。
ArrayBlockingQueue; LinkedBlockingQueue; SynchronousQueue;
多线程
volatile 其它线程立即可见
02 禁止指令重排
多线程
数据库
事务
A
原子 性
B
持久 性
C
一致 性
D
隔离 性
事务隔离
未授权读取,也称脏读,在数据修改的时候允许读取 授权读取,也称提交后读取 可重复读取:禁止不可重复读取和脏读取,但是有时可能出现幻读数据。读取数据的事务将会禁止写事务 (但允许读事务),写事务则禁止任何其他事务。可以通过“共享读锁”和“排他写锁”实现。 序列化:提供严格的事务隔离。它要求事务序列化执行,事务只能一个接着一个地执行,不能并发执行。 仅仅通过“行级锁”是无法实现事务序列化的,必须通过其他机制保证新插入的数据不会被刚执行查询操 作的事务访问到。 幻读 不可重复
ReentrantLock与Synchronized
特点:要么不占, 要么独占
reentrant Lock
缺点 不可以自动释放锁,需
要手动unlock
优点 等待可中断
超时直接返回 可判断是否有其他线程等 待该锁 可实现公平锁 高竞争的情况下, 性能维 持常态
synchronized
优点 JVM底层实现, 异常可自动释放锁
循环栅栏:主要调用await方法,每调用一 次减一, 计数为0的时候, 解除阻塞;
限制同一时间,访问资源的线程数量; aquire 获取许可, release 释放许可
02
数据库
数据库
0 1
最左侧原则
0 4
innoDb
0
0
2
3
簇拥索引与非 簇拥索引
索引
0
0
5
6
MyISAM
事务
数据库
设计范 式
持久层
CachedThread Pool
无边界线程池, 会回收空闲的的 线程, 任务增加时也会新建线程 (数量由JVM指定),通常用于 短任务
ScheduledThreadPool
核心线程池固定,大小无限的线程池。
核心参数
corePoolSize
核心线程数
核心参数
maximunPoolSize
线程池能创建的最大数量,如果核心线程池和缓存队列都已经满了,新的任务进来就会创建新 的线程来执行。但是数量不能超过maximunPoolSize,否侧会采取拒绝接受任务策略,我 们下面会具体分析。
FixedThreadPool
固定线程池:只 有 核 心 线 程 。 每 次 提 交 一 个 任 务 就 创 建 一 个 线 程 ,直 到 线 程 达 到 线 程 池 的 最 大 大 小 。线 程 池 的 大 小 一 旦 达 到 最 大 值 就 会 保 持 不 变 ,如 果 某 个 线 程 因 为 执 行 异 常 而 结 束 ,那 么 线 程 池 会 补 充 一 个 新 线 程 。
多表空间存储
以表名为文件名称存储
数据库
MyISAM
优点
缺点
堆表
优点
支持 FULLTEXT 类型的全文索引
缺点
不支持外键
不支持事务
不支持行级 锁(只支持表 级锁)
堆表
在磁盘存储上有三个文件,每个文件名以表名开头,扩展名指出文件类 型
.frm 用于存 储表的定义
.MYD 用于存 放数据
.MYI 用于存 放表索引
Btree索引
B树 叶子节点存储多个元素(包含
key和value) B+树
叶子节点只存key, 非叶子节点 存储值;
有序数组
有序数组在等值查询和范围查询场景中的性能都非常优秀。用二分法 就可以快速找到(时间复杂度为O(logN))。但是如果要往中间插入 一条数据,则必须挪动后面的所有记录,成本较高。因此,有序数组 只适用于静态存储引擎,即数据表一旦建立后不再会修改。
数据库
最左侧原则
针对复合索引,先使用复合索引最 前面的索引(精确查找),直到范 围查找
数据库
簇拥索引与非簇拥索引
01
簇拥索引:数据和索引放在一 起
02
非簇拥索引:数据与索引分开 放
01
hash 索引
数据库
索引
02
Btree 索引
03
有序数 组
hash索引
对于哈希索引来说,底层的数据 结构就是哈希表,因此在绝大多 数需求为单条记录查询的时候, 可以选择哈希索引,查询性能最 快;其余大部分场景,建议选择 BTree索引;