Java SE Java程序语言的核心
- 格式:doc
- 大小:1.48 MB
- 文档页数:13
javase知识点归纳总结JavaSE是Java Platform, Standard Edition(Java标准版)的缩写,是Java语言的标准版开发平台,是整个Java EE、Java ME平台的核心。
JavaSE包含了Java语言基础、程序设计、常用API等等,是Java开发的基础。
本文将对JavaSE的知识点进行归纳总结,帮助大家更好地理解JavaSE的核心内容。
JavaSE知识点归纳总结:一、Java语言基础1. 数据类型Java语言的数据类型包括基本数据类型和引用数据类型。
基本数据类型包括整型、浮点型、字符型、布尔型,引用数据类型包括类、接口、数组。
2. 变量与常量Java语言的变量可以分为基本数据类型变量和引用数据类型变量,常量是在程序运行过程中不会发生改变的量。
3. 运算符Java语言的运算符包括算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符等。
4. 控制流程Java语言的控制流程包括顺序结构、分支结构、循环结构。
5. 方法Java语言的方法是一段有名字的代码块,可以重复使用,可以有参数和返回值。
二、面向对象编程1. 类与对象Java语言是一种面向对象的编程语言,类是对象的设计图,对象是类的一个实例。
2. 继承与多态继承是子类继承父类的属性和方法,多态是同一个方法针对不同的对象有不同的表现形式。
3. 封装与继承封装是将数据和方法进行了封装,隐藏了内部的实现细节,继承是子类继承父类的属性和方法。
4. 接口与抽象类接口是一种抽象的数据类型,抽象类是抽象了一些共同的特征和行为的类。
5. 内部类内部类是定义在另一个类中的类,可以访问外部类的成员。
三、异常处理1. 异常的分类Java语言的异常包括编译时异常和运行时异常,编译时异常需要捕获或声明,运行时异常可以不捕获也不声明。
2. 异常的处理Java语言的异常处理包括try-catch语句块、throw语句和throws关键字。
JDK、JRE、JVM三者间的关系JDK(Java Development Kit)是针对Java开发员的产品,是整个Java的核⼼,包括了Java运⾏环境JRE、Java⼯具和Java基础类库。
Java Runtime Environment(JRE)是运⾏JAVA程序所必须的环境的集合,包含JVM标准实现及Java核⼼类库。
JVM是Java Virtual Machine(Java虚拟机)的缩写,是整个java实现跨平台的最核⼼的部分,能够运⾏以Java语⾔写作的软件程序。
在计算机开发语⾔的历史中,从来没有哪种语⾔象Java那样受到如此众多⼚商的⽀持,有如此多的开发⼯具。
JDK(Java Development Kit)JDK是Java开发⼯具包,是Sun Microsystems针对Java开发员的产品。
JDK中包含JRE,在JDK的安装⽬录下有⼀个名为jre的⽬录,⾥⾯有两个⽂件夹bin和lib,在这⾥可以认为bin⾥的就是jvm,lib中则是jvm⼯作所需要的类库,⽽jvm和 lib和起来就称为jre。
JDK是整个JAVA的核⼼,包括了Java运⾏环境JRE(Java Runtime Envirnment)、⼀堆Java⼯具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)。
①SE(J2SE),standard edition,标准版,是我们通常⽤的⼀个版本,从JDK 5.0开始,改名为Java SE。
②EE(J2EE),enterprise edition,企业版,使⽤这种JDK开发J2EE应⽤程序,从JDK 5.0开始,改名为Java EE。
③ME(J2ME),micro edition,主要⽤于移动设备、嵌⼊式设备上的java应⽤程序,从JDK 5.0开始,改名为Java ME。
Java Runtime Environment(JRE)是运⾏基于Java语⾔编写的程序所不可缺少的运⾏环境。
javase知识点总结JavaSE(Java Standard Edition)是Java语言的标准版本,是Java程序开发的基石。
JavaSE包含了Java程序开发所需的核心框架和库,是Java语言最基本的一个版本。
JavaSE知识点总结如下:一、Java语言基础Java语言基础是JavaSE中最基础的知识点,主要包括数据类型、运算符、控制语句、方法和数组等基础概念。
其中,数据类型是Java程序中的基本概念,包括整型、浮点型、布尔型、字符型等;运算符用于进行算术、逻辑和位运算等操作;控制语句包括if、switch、for、while等,用于程序的流程控制;方法是Java中的函数,用于封装一些可重复使用的代码;数组是Java中的数据类型,用于存储相同类型的数据。
二、面向对象编程面向对象编程是JavaSE的核心内容之一,面向对象编程包括类的定义、对象的创建、继承和多态等内容。
类是Java程序的基本组成单元,用于封装数据和行为,对象是类的一个实例,Java中使用new关键字来创建对象。
继承是指子类继承父类的属性和方法,Java中使用extends关键字来实现继承;多态是指同样的方法在不同对象中的行为不同,Java中使用方法重载和方法重写来实现多态。
三、异常处理Java中异常处理是程序设计中的一个重要内容,JavaSE中也包含了相关的异常处理机制。
在Java中,异常分为Checked Exception和Runtime Exception,Checked Exception需要在代码中进行处理,Runtime Exception则可以不处理。
Java中使用try-catch块来捕获异常,使用throws关键字来声明方法会抛出哪些异常。
四、输入输出流输入输出流是JavaSE中重要的知识点之一,Java中提供了各种输入输出流,包括字节流和字符流,用于处理文件、网络等数据的读取和写入。
Java中的输入流主要包括InputStream和Reader,输出流主要包括OutputStream和Writer,其中,字节流以字节为单位读取数据,字符流以字符为单位读取数据。
JAVA的概念理解:JavaSE、JavaEE、JavaME、jdk、jre、ide JavaSE是Java Standard Edtion的缩写,译成中⽂就是Java标准版,也是Java的核⼼。
⽆论是JavaEE(Java企业版)还是JavaME(Java微型版)都是以JavaSE为基础。
相当于它就是Java的语法规则se是企业标准版,ee是web版(⽬前应⽤⼴泛),me是微型版,也就是⼿机⼩程序]Java分为JavaME JavaSE JavaEE JavaME是微型版,也就是⼿机开放平台,现在流⾏的Android就在这个平台上;JavaEE也就是企业级开发,专门为企业服务的⼀种开放平台,JavaWeb开放就是基于这个平台。
⽽JavaSE就是⼀种标准版,是Java中的基础部分,不过后来的各种框架,各种产品都是基于JavaSE,也就是JavaSE是java向上发展的基础,Java任何⾼级产品的底层基础都是JavaSE,所以如果要学习,把它学扎实,牢固是很有必要的。
J2EE是在java1.2是沿⽤下来的名字,从java1.5开始更名为JavaEE 5.0。
相应的J2SE-->JavaSEJ2ME-->JavaME现在是JavaEE 6.0只是名字的变换,并没有什么⼤的改变。
要说有改变,那也就是版本的升级。
jdk下的lib和jdk/jre下的lib⽂件是⼀样的,这只是为了不同场景下的使⽤,解释如下:1.普通⽤户装jre即可。
开发⼈员需要安装jdk,其中包括jre。
所以jdk⽬录下包括jre⽬录。
两个jre⼤体相同,有细微的差别。
两套 jre ,是针对不同的⼯作职责!不同的 jre 负责各⾃范围的内容。
当⽤户只需要执⾏ java 的程序时,那么C:\Program Files\Java\jre1.5.0_08的 jre 就 ok !2.当⽤户是 java 程序员,则需要 java 开发环境。
开源 jvmm项目的整合及使用实例一、介绍Java虚拟机(JVM)是Java语言的核心,它是一种虚拟机,可以在不同的平台上运行Java程序。
开源JVM项目是指基于开源协议发布的JVM实现,比如OpenJDK、GraalVM等。
这些项目提供了更加灵活、可定制化的解决方案,可以满足不同场景下的需求。
本文将介绍开源JVM项目的整合及使用实例。
二、开源JVM项目1. OpenJDKOpenJDK是一个由Oracle公司领导的开源项目,旨在提供一个免费、开放和高质量的Java平台。
它包含了Java SE规范中所有必需的组件和工具,并且还有许多扩展功能和工具。
2. GraalVMGraalVM是一种基于Oracle JDK和OpenJDK构建的全新虚拟机,它支持多语言混合编程,并且具有高性能和低内存消耗等优点。
GraalVM可以运行Java、Scala、Kotlin、Groovy等语言,并且还支持JavaScript、Python等脚本语言。
3. Azul ZuluAzul Zulu是一个由Azul Systems公司领导的开源项目,它提供了一个与Oracle JDK兼容的替代品。
Zulu包含了完整的Java SE规范和工具,可以在Linux、Windows、Mac OS X等操作系统上运行。
三、整合开源JVM项目1. 使用OpenJDK和GraalVMOpenJDK和GraalVM可以相互整合,以提供更好的性能和功能。
具体来说,可以使用GraalVM的JIT编译器替代OpenJDK的C2编译器,并且还可以使用GraalVM的AOT编译器将Java程序编译成本地代码,提高启动速度和执行效率。
2. 使用Azul ZuluAzul Zulu可以与其他开源JVM项目进行整合,以提供更多的选择和灵活性。
例如,可以将Zulu作为替代品替换掉Oracle JDK,并且还可以与GraalVM一起使用以提高性能。
四、使用实例下面是一个使用OpenJDK和GraalVM进行混合编程的示例:```javaimport java.util.*;public class Main {public static void main(String[] args) {List<String> list = new ArrayList<>();list.add("Hello");list.add("World");for (String s : list) {System.out.println(s);}}}```该程序使用了Java语言的ArrayList类,并且通过for-each循环输出了列表中的元素。
java面试自我介绍技术栈Java是一门广泛应用于软件开发领域的编程语言,具有跨平台、面向对象、安全性高等特点。
作为一个Java开发者,熟练掌握各种技术栈是非常重要的。
下面我将介绍一些我在Java开发中常用的技术栈。
1.核心Java技术栈核心Java技术栈包括JavaSE(Standard Edition),它是Java的基础,提供了语言基础、面向对象编程、集合框架、并发编程、I/O 操作等功能。
在Java开发中,我们经常使用JavaSE进行基础开发工作。
2.后端开发技术栈在后端开发中,我们经常使用JavaEE(Enterprise Edition)技术栈。
JavaEE提供了一系列的API和规范,用于开发企业级应用。
其中,常用的技术包括Servlet、JSP、JavaBean、JDBC、JPA、Spring等。
Servlet是一种服务器端的Java程序,用于处理HTTP 请求和响应。
JSP(JavaServer Pages)是一种动态网页开发技术,可以与HTML混合编写。
JavaBean是一种可重用的Java类,用于封装数据和逻辑。
JDBC(Java Database Connectivity)是Java 访问数据库的标准接口。
JPA(Java Persistence API)是一种Java 持久化技术,用于操作数据库。
Spring是一个开源的JavaEE开发框架,提供了依赖注入、AOP、事务管理等功能。
3.前端开发技术栈在前端开发中,我们经常使用HTML、CSS和JavaScript。
HTML (Hypertext Markup Language)是一种用于创建网页的标记语言。
CSS(Cascading Style Sheets)用于控制网页的样式和布局。
JavaScript是一种脚本语言,用于实现网页的交互和动态效果。
此外,还有一些常用的前端框架和库,如Bootstrap、jQuery、Vue.js等,它们可以加速前端开发的过程。
Java填空题1一个Java源程序是由若干个类组成。
2class是Java的关键字,用来定义类。
3Java应用程序中有多个类时,java命令后的类名必须是包含了main方法的那个类的名字。
4一个Java应用程序必须且只有一个类含有main方法。
5在一个Java应用程序中main方法必须被说明为public static void。
6Java中所有程序都使用方法,应用程序以main方法开始。
7Java源文件中有多个类,但只能有一个类是public类。
8Java源程序编译后生成的字节码文件扩展名为class。
9用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。
10Java语言规定标识符由字母、下划线、美元符号和数字组成,并且第一个字符不能是数字。
11关键字就是Java语言中已经被赋予特定意义的一些单词,不可以把这类词作为名字来用。
12使用关键字boolean来定义逻辑变量。
13关键字就是Java语言中已经被赋予特定意义的一些单词。
14结构化程序设计的基本数据类型包括逻辑类型、整数类型、字符类型、浮点类型。
15Java中byte型数组在内存中的存储形式是补码。
16对于int型变量,内存分配4个字节。
17对于byte型变量,内存分配1个字节。
18对于long型变量,内存分配8个字节。
19对于short型变量,内存分配2个字节。
20结构化程序设计的基本数据类型包括整数类型、逻辑类型、字符类型、浮点类型。
21使用关键字char来定义字符变量。
22结构化程序设计的基本数据类型包括字符类型、逻辑类型、整数类型、浮点类型。
23java中,浮点型变量的类型有float和double两种。
24对于float型变量,内存分配4个字节。
25对于double型变量,内存分配8个字节。
26结构化程序设计的基本数据类型包括字符类型、逻辑类型、整数类型、浮点类型。
27Java使用Unicode字符集。
Java SE Java程序语言的核心,面向对象、Java MEJava EE 基于组件、容器管理CBDMDDJ2SE j2EE堆(java)、栈完整的语言:编译工具、调试工具、类库、能开发完整的应用,支持手册James goslingHandle :句柄取代memory address搞清楚用一个、有一个、是一个只能在浏览器中应用的appletNative codeByte code JVM(进程)解释器和编译器Platform 主要指操作系统多线程动态加载类:即在实际需要时加载类加载器classloaderJava虚拟机是JRE的一部分,jre还包含编译器浏览器嵌入虚拟机,它不是一个进程虚拟机可以是硬件,也可以是软件,软件和硬件区别很小字节码也是有版本的,平台的版本也要升级Stack(栈,属于线程,拥有独立的内存区域,独立)heap(堆,属于进程,可以共享)JVM处理指令和数据,数据分三块,静态、stack、heap指令分两种,JVM编译为本地码。
JVM是一个进程,有一个专门的线程,负责垃圾回收,跟操作系统紧密相关Java。
Exe是一个launcherByte/ binaryJust in time(JIT)Jvm不包括JAVACJVM包括类加载器。
,任何类当且仅当被加载一次。
字节码验证器:Eclipse WebSphere WSAD 5.1 RAD6.0NetbeansJBuilder Borland CodeGearMyEclipse运行时错误,编译时错误Eclipse 中先保存Ctr+shift+F 排版Do the right thing =analysis OOADo the thing right =design OODImplementation OOP 封装、继承、多态Abstraction 抽象概念,有层级HierarchyApplicationpackageclassopearation\attributenecessary and sufficientintensional definition 内涵性的定义无限集合extensional 外延性的定义,有限集合enumerationvisibility= access modifer封装是目的,实现封装的手段就是通过可见性包里放Classifier 类元,有四种Class、interface、enum、annotation可见性有四种:公有的(整个应用可见)、私有的、保护、包里可见访问修饰符把变的和不变的分开,构照器不是方法,不能说构照方法。
它是没有返回值的Source fileArtifact Manifest packageableElementPackage classifer commentLayoutFOLDER PACKAGEDIR/WPATH CLASSPATHABSOLUTE PATH RELATIVE PATH包的公有的是what,什么包的私有的是‘如何’,不能导入‘如何’import。
做什么和如何做分离,就是封装Fully qualified class nameJava -jar c:/main.jarSet _java_launcher_debug=1虚拟机也有运行状态Java 是一个启动器Java –server pkg/TestGreeting四个原理:1、abstraction scope2、encapsulation3、Modularity divide and conquer 模块化4、HierarchyOO OO:抽象物,做什么(what to do/ DESIGN TIME)、如何做how to do/ RUNTIMEoop 封装、继承、多态slogan 高内聚tight cohesion 低耦合loose counling分工协作rdd= responsibility driven designlayer partition 层切、分区问题空间、方案空间职责决定类放入什么包里。
包里公有的表示做什么,私有的表示怎么做。
包级别只分Public package private,这个级别粒度就与类级别不一样气度决定高度高度决定视野角度改变观念尺度把握人生第一步:确定属于哪个包,where am i第二步:找谁帮忙import第三步:,一个公共的类元,一堆私有的类元Variable type 变量的类型分:primitive reference保存的内容不一样:Content vaule handleSyntaxStatementExpression; compound block{ } curly brace ,square brace,opening brace ,closing braceOperator operand三个文字值:null、True、falseJava 不允许将整型强制转换为布尔类型单引号是字符,基本类型,双引号是字符串,引用类型,不允许进行类型转换byte b=128 错误short 2的15次方减一char 是无符号的整数,只要不越界引用类型决定了存储的位置,堆构照和初始化:new 触发类的加载,为整个类型在堆上一次性分配内存,内存大小由实例变量大小决定对象有状态和行为,在堆上保留状态,行为(指令)放在文本段上,垃圾收集状态,不能收2、分配内存3、直接初始化4、再调构造器句柄的长度是多少?引用类型变量的长度取决于操作系统的位数Variable argument重构点右键refactor变量:1 类型堆上的都是实例变量,栈上的都是局部变量方法内定义的变量,都是局部变量,都是存储在栈上,他的生命周期与范围紧密相关。
不能进行缺省初始化。
要显示的初始化。
2 范围3 内存位置4 生命周期Java 被调用方法自己清理栈上的内容静态变量放在静态存储区,因为类当且仅当加载一次,所以它与应用一同存在I++ post-increment 在下一个表达式应用++I pre-increment 在当前表达式应用逻辑运算符:考试重点短路负数在内存保存的格式是,取反加一,再在符号位放1整型、枚举、char允许switch,long不行Program argumentVM argument空数组和不初始化,有本质区别-Xms memory size -XmxIS –a =inheritance 目的:reuse暂时Java一个类只能扩展一个类多态:a reference type is a form一个对象有编译时类型compile time type,这时决定了这个对象能做什么、运行时类型runtime type决定了怎么做。
如果两个type不一致,就是多态。
对象的能力,他允许接受消息的对象依赖自身运行时类型用不同的方式去响应同一个消息的能力Message=returnvalue objname。
Opname(parm)动态的多态要靠继承,静态的多态不需要,可见性只能被放大,不能被缩小。
只有虚方法可以覆盖,private 不是虚方法,包私有的可以覆盖(包内)被覆盖的方法一定是要看的见层次链,可见性,所处的环境。
属性不能覆盖调用规则、复用规则、隐藏hiding、可以作用在属性上、操作上、类名上,名字类型可以不一样重定义redefining、名字类型一样覆盖overriding、只能用在方法上,不能覆盖构造器重载overloading 是方法的多态,在运行过程中确定,方法、构造器重载类型的多态,是要靠覆盖Instanceof判断引用类型的变量真实的类型---运行时类型Super()this()作用在类型上,super。
This。
作用在对象上的一次性分配内存,分层加载,分层构造,Identical 表达两个引用都指向内存上同一个对象Equal 判断是否是同一个类型Immutable class 状态不可以改变类属性不能在堆上,访问类属性的方法:类名。
属性访问实例属性的方法:对象。
属性静态的方法不能访问堆上的,不能访问实例变量静态变量和实例变量都能够被缺省初始化,实例变量可以在构造器中初始化。
方法重载必须放在同一个作用域为扩展而开发,为修改而封闭Ocp= open closed principleDIP DEPENDENCY INVERSION PRINCPLECpu执行指令和数据,每个线程虚拟的cpu。
执行对象上的代码和数据。
Scheduler线程调度器只能请求,不能命令有一个包,有一个类,资源类,有两个线程想去加载这个类:证明类只能加载一次,类加载器决定类对象的实例,可以锁住静态,静态的同步方法Class c=C。
class在服务器端编程,不能创建用户线程。