[Java学习]1.Java基础【学习笔记】
书籍 《Java核心技术》、《Java核心技术精讲》
2018-09-18
1.Java基础
- 三个分支
- Java SE:Java语言核心的类。如数据库连接、接口定义、数据结构、输入/输出、网络编程等。
- Java EE:包含Java SE ,还包含用于企业级应用开发的类,比如EJB、Servlet、JSP、XML、事务控制。是现在Java应用的主要方向。
- Java ME:用于嵌入式开发.
-
Java 3个分支的关系
- J2EE这样的称呼已经在2005年后抛弃了,而是Java EE
- Java EE是目前Java应用的主要方向
-
Java SE是整个技术架构的核心
- Java的重点一直放在嵌入式开发上,到了Android时代,真正实现了Java的嵌入式开发设想。
语言特性
- 简洁有效,省略了C++中难以理解、容易混淆的特性
- 可移植性
- 面向对象
- 解释型
- 适合分布式计算:编写Socket通用程序简单,十分适用于CGI脚本开发,JSP、Servlet等手段来构建更丰富的网页。
- 拥有较好的性能:(1)源程序编写完成后,先使用伪编译器进行伪编译,将其转换为中间码(字节码)(2)提供了准实时(JIT)编译器,需要更快运行速度时,可以将字节码转换成机器码,然后缓冲下来,速度就会更快。
- 健壮、防患于未然:伪编译时,做了早期潜在问题的检查,并且在运行时又做了一些响应的检查
- 具有多线程处理能力:多线程处理性能超群,在Java语言中进行多线程处理很简单。
- 具有较高的安全性
- 是一种动态语言:体现在两方面:(1)可以简单、直观地查询运行时的信息(2)可以将新代码加入到一个正在运行的程序中去。
- 中性结构:Java编译器生成的是一种中性的对象文件格式。,伪编译后生成的字节码与计算机体系统无关。
代码处理过程
JVM基本原理
-
.java源文件——编译器伪编译成.class文件——JVM虚拟机上运行
- 因此实际运行程序的不是计算机,而是JVM,这种方式显然不如直接在操作系统上运行要来得快。
- JVM相当于“翻译”,不同的机器有不同的JVM,可以“翻译”成不同的语言
- 联想11个特性中的 可移植性、结构中性、具有较高安全性、具有较好性能的4个特性
JRE与JDK
-
JRE,Java Runtime Environment,包括Java虚拟机、Java核心类库和支持文件,不包括开发工具(编译器、调试器和其他工具)。
-JDK,JRE+编译器、调试器和其他工具
Hello World程序
文件后缀必须是*.java(源文件)
Java
JRE和JDK版本需要一致,否则会出现运行错误
Hello World程序
- Java区分大小写,是小写main而不是Main
类的定义 - 类是Java中的基本组成元素
- 所有的Java程序一定要被类所管理
- 类的定义有两种:
-public class:类名必须与文件名保持一致,否则程序将无法编译 - class:类名可以与文件名称不一致但是生成的是class定义的名称
- 在一个.java程序中可以同时存在多个class的定义,编译之后会分为不同的.class文件
-类的命名规范:每一个单词首字母大写。
主方法:
- 程序的起点,所有的程序代码都有此顺序执行,在Java中主方法有固定格式:
public static void main(String args[]){} - 主方法所在的类为主类
Path
- Windows系统不区分大小写,设置Path和PATH没有区别,但是Linux系统是区分大小写的
- Path路径是操作系统查找操作指令的路径依赖
-
用户变量和环境变量*的区别:用户变量只针对当前用户,环境变量针对整个系统。系统变量排在环境变量之前,Path路径的先执行。
CLASSPATH
- 想要解决在不同路径下访问指定目录类的问题,可以通过配置CLASSPATH来解决。
-
JVM运行时需要通过CLASSPATH加载所需要的类,默认情况下CLASSPATH指向当前目录。
- 是用来定义类的路径的。作用:使用“java Java类名”时候,搜索Java类的路径。
- CLASSPATH中的". "是指当前路径
- 只有早期版本的JDK,才需要设置CLASSPATH路径(1.4以前),之后的就不需要了,但是自行设置也可以。一旦设置了CLASSPATH,就会按该环境变量指定的路径来搜索Java类
- 可以用 -classpath来指定临时路径
垃圾回收机制
- Java:自动回收,垃圾回收(GC)。JRE提供一个后台线程来进行检测和控制。
- JVM的超级线程会自动释放该内存去。
- 垃圾回收能自动释放内存空间,减轻编程的负担。这使得Java虚拟机具有两个显著的优点:
- 垃圾回收机制可以很好地提高编程效率。
- 垃圾回收机制保护程序的完整性,垃圾回收是Java语言安全性策略的一个重要部分。
- 垃圾回收要做的两件事:1.发现无用的对象;2.回收被无用对象占用的内存空间,使该空间可被程序再次使用。
- 但是不可避免的造成了一定的系统负担