# [Java学习]1.Java基础【学习笔记】

[Java学习]1.Java基础【学习笔记】

书籍 《Java核心技术》、《Java核心技术精讲》




2018-09-18

1.Java基础

# [Java学习]1.Java基础【学习笔记】_第1张图片
  • 三个分支
  • Java SE:Java语言核心的类。如数据库连接、接口定义、数据结构、输入/输出、网络编程等。
  • Java EE:包含Java SE ,还包含用于企业级应用开发的类,比如EJB、Servlet、JSP、XML、事务控制是现在Java应用的主要方向。
  • Java ME:用于嵌入式开发.
  • Java 3个分支的关系


    # [Java学习]1.Java基础【学习笔记】_第2张图片
  • J2EE这样的称呼已经在2005年后抛弃了,而是Java EE
  • Java EE是目前Java应用的主要方向
  • Java SE是整个技术架构的核心


    # [Java学习]1.Java基础【学习笔记】_第3张图片
  • Java的重点一直放在嵌入式开发上,到了Android时代,真正实现了Java的嵌入式开发设想。
语言特性
  1. 简洁有效,省略了C++中难以理解、容易混淆的特性
  2. 可移植性
  3. 面向对象
  4. 解释型
  5. 适合分布式计算:编写Socket通用程序简单,十分适用于CGI脚本开发,JSP、Servlet等手段来构建更丰富的网页。
  6. 拥有较好的性能:(1)源程序编写完成后,先使用伪编译器进行伪编译,将其转换为中间码(字节码)(2)提供了准实时(JIT)编译器,需要更快运行速度时,可以将字节码转换成机器码,然后缓冲下来,速度就会更快。
  7. 健壮、防患于未然:伪编译时,做了早期潜在问题的检查,并且在运行时又做了一些响应的检查
  8. 具有多线程处理能力:多线程处理性能超群,在Java语言中进行多线程处理很简单。
  9. 具有较高的安全性
  10. 是一种动态语言:体现在两方面:(1)可以简单、直观地查询运行时的信息(2)可以将新代码加入到一个正在运行的程序中去。
  11. 中性结构:Java编译器生成的是一种中性的对象文件格式。,伪编译后生成的字节码与计算机体系统无关。
    # [Java学习]1.Java基础【学习笔记】_第4张图片

代码处理过程

# [Java学习]1.Java基础【学习笔记】_第5张图片

# [Java学习]1.Java基础【学习笔记】_第6张图片

JVM基本原理

  • .java源文件——编译器伪编译成.class文件——JVM虚拟机上运行


    # [Java学习]1.Java基础【学习笔记】_第7张图片
  • 因此实际运行程序的不是计算机,而是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程序一定要被类所管理
# [Java学习]1.Java基础【学习笔记】_第8张图片
  • 类的定义有两种:
    -public class:类名必须与文件名保持一致,否则程序将无法编译
  • class:类名可以与文件名称不一致但是生成的是class定义的名称
  • 在一个.java程序中可以同时存在多个class的定义,编译之后会分为不同的.class文件
    -类的命名规范:每一个单词首字母大写。

主方法:

  • 程序的起点,所有的程序代码都有此顺序执行,在Java中主方法有固定格式:
    public static void main(String args[]){}
  • 主方法所在的类为主类

Path

  • Windows系统不区分大小写,设置Path和PATH没有区别,但是Linux系统是区分大小写的
  • Path路径是操作系统查找操作指令的路径依赖
  • 用户变量和环境变量*的区别:用户变量只针对当前用户,环境变量针对整个系统。系统变量排在环境变量之前,Path路径的先执行。
    # [Java学习]1.Java基础【学习笔记】_第9张图片

CLASSPATH

  • 想要解决在不同路径下访问指定目录类的问题,可以通过配置CLASSPATH来解决。
  • JVM运行时需要通过CLASSPATH加载所需要的类,默认情况下CLASSPATH指向当前目录。


    # [Java学习]1.Java基础【学习笔记】_第10张图片
  • 是用来定义类的路径的。作用:使用“java Java类名”时候,搜索Java类的路径。
  • CLASSPATH中的". "是指当前路径
  • 只有早期版本的JDK,才需要设置CLASSPATH路径(1.4以前),之后的就不需要了,但是自行设置也可以。一旦设置了CLASSPATH,就会按该环境变量指定的路径来搜索Java类
  • 可以用 -classpath来指定临时路径

垃圾回收机制

  • Java:自动回收,垃圾回收(GC)。JRE提供一个后台线程来进行检测和控制。
  • JVM的超级线程会自动释放该内存去。
  • 垃圾回收能自动释放内存空间,减轻编程的负担。这使得Java虚拟机具有两个显著的优点:
  • 垃圾回收机制可以很好地提高编程效率。
  • 垃圾回收机制保护程序的完整性,垃圾回收是Java语言安全性策略的一个重要部分。
  • 垃圾回收要做的两件事:1.发现无用的对象;2.回收被无用对象占用的内存空间,使该空间可被程序再次使用。
  • 但是不可避免的造成了一定的系统负担


本章小结

# [Java学习]1.Java基础【学习笔记】_第11张图片

你可能感兴趣的:(# [Java学习]1.Java基础【学习笔记】)