Java-1-Setup
Introduction: Java
Java是一门面向对象编程语言(OOD, Object-Oriented Design),不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
Java Properties
从互联网到企业平台,Java是应用最广泛的编程语言,原因在于:
Java是基于JVM虚拟机的跨平台语言,一次编写,到处运行;
Java程序易于编写,而且有内置垃圾收集,不必考虑内存管理;
Java虚拟机拥有工业级的稳定性和高度优化的性能,且经过了长时期的考验;
Java拥有最广泛的开源社区支持,各种高质量组件随时可用。
从上面的特点,我们可以看到java一些特性:
简单性
Java 相对于C, C++而言,除了保留 C/C++相似的语法外, Java也把一些复杂的特性去除掉,比如说C/C++里面的显性指针 和 操作符重载。面向对象 (OOD)
另外Java是面向对象的编程语言,它的程序都是用Class类进行封装的,Java实现的了OOD的特点和概念,比如抽象性(abstraction), 封装性(Encapsulation), 继承性(inheritance) 和多态性(polymorphism)软件可移植性(Portability) 和平台的独立性
Java 不像C/C++编译时那样要生成机械码, Java编译时把程序编译成byte code 字节码,而 Java字节码能够不依赖机器平台,Java程序可以在任何实现了Java解释程序和运行系统(run-time system)的系统上运行, 下图就是一个例子, window编写好的 java类可以在带有JRE环境的Linux, Mac 等不同环境运行,不用重新编写
稳健性Robustness
Java不支持指针,它消除重写存储和讹误数据的可能性。Java自动的“无用单元收集”预防存储漏泄和其它有关动态存储分配和解除分配的有害错误。Java解释程序也执行许多运行时的检查,诸如验证所有数组和串访问是否在界限之内。(JVM通过一定机制进行内存自动的回收,也避免像C/C++容易内存的问题)
Java中的异常检测是使得程序更稳健的一个特征。异常是某种类似于错误的异常条件出现的信号。使用try/catch/finally语句,程序员可以找到出错的处理代码,这就简化了出错处理和恢复的任务。
Java是一个强类型语言,它允许扩展编译时检查潜在类型不匹配问题的功能。Java要求显式的方法声明,它不支持C风格的隐式声明。这些严格的要求保证编译程序能捕捉调用错误,这就导致更可靠的程序
High Performance:
Java JVM 每次通过 Just In Time compiler (JIT) 来转换相似的byte code到依赖于机器的环境的机器码,从而减少程序的运行时间多线程Multithread
Java 提供支持多线程的执行 也称为轻便过程,能处理不同任务,使具有线索的程序设计很容易。Java的lang包提供一个Thread类,它支持开始线索、运行线索、停止线索和检查线索状态的方法。(这个C++, Python 之类的语言也支持)。 Java的线索支持也包括一组同步原语。这些原语是基于监督程序和条件变量风范,由C.A.R.Haore开发的广泛使用的同步化方案。用关键词synchronized,程序员可以说明某些方法在一个类中不能并发地运行。这些方法在监督程序控制之下,确保变量维持在一个一致的状态。
安全性Security
Java的安全性体现在- 存储分配模型里面没有指针, 用户不能直接通过指针直接访问和修改内存
- Java编译程序不处理存储安排决策,所以程序员不能通过查看声明去猜测类的实际存储安排。编译的Java代码中的存储引用在运行时由Java解释程序决定实际存储地址。
分布性 Distributed
Java设计成支持在网络上应用,它是分布式语言。Java既支持各种层次的网络连接,又以Socket类支持可靠的流(stream)网络连接,所以用户可以产生分布式的客户机和服务器可解释性
Java 是高度的解释性语言意味着它不依赖操作系统的运行去把byte code翻译成机器码,也不像传统的编译过程把代码重新”编译->链接-> 测试 “, 而是有它自己独立的编译器把新类装进环境,, 它是增量式的、轻量级的过程。动态性 dynamic
Java语言设计成适应于变化的环境,它是一个动态的语言。例如,Java中的类是根据需要载入的,甚至有些是通过网络获取的。
Installation
Install JDK
Java需要在JVM上面才能运行,所以我们首先要把Java的环境安装,所以我们要安装 JDK
安装时根据电脑环境的不同,安装不同的版本,这里了我安装的是Window的版本Set Environment Variable for java
在安装JDK后, 我们要让电脑和terminal检测到java的环境就要通过设置环境变量来指向Java的安装位置
Window的安装目录大概是这样子1
C:\Program Files\Java\jdk-16
然后,把JAVA_HOME的bin目录附加到系统环境变量PATH上。在Windows下,它长这样:
1
Path=%JAVA_HOME%\bin;<现有的其他路径>
在Mac里面是
在Mac或者linux下,它在/.bash_profile或/.zprofile里,它是:
1 | export JAVA_HOME=`/usr/libexec/java_home -v 16` |
Test
在安装好Java后,可以在terminal里面简单看看java的版本 来看看jdk有没有安装完成1
java --version
Tools
- java: 这个可执行程序其实就是JVM,运行Java程序,就是启动JVM,然后让JVM执行指定的编译后的代码
- javac: 这是Java的编译器,它用于把Java源码文件(以.java后缀结尾)编译为Java字节码文件(以.class后缀结尾);
- jar: 用于把一组.class文件打包成一个.jar文件,便于发布;
- javadoc: 用于从Java源码中自动提取注释并生成文档;
- jdb: Java调试器,用于开发阶段的运行调试。(类似C/C++里面的gdb)
IDE 环境安装
Java常用的IDE(Integrated development environment)集成环境有Eclipse, IntelliJ IDEA等
Simple Codes
这里简单写个Hello World的demo测试一下IntelliJ IDEA的开发环境,项目步骤创建如下:
- 点进在IDE左上角 file -> new -> Project
- 在Project里面选择java
- 在创建后的项目目录里面的src(源码的文件夹)里面右键选择new-> Package
- 在创建后的Package文件夹里面创建一个叫做demo的java文件
- 在新建的java文件里面添加一下代码, 这样可以把新建的java文件当作新的class,可以把这文件当成出现的入口
1
2
3
4
5
6
7package Practice.demo;
public class demo {
public static void main(String[] args){
System.out.println("Hello World");
}
} - 按
Alt
+Shift
+F10
对main入口这个文件进行运行
Reference
[1] https://www.topperskills.com/tutorials/java/features-properties-java-language.html
[3] IntelliJ IDEA IDE使用: https://blog.csdn.net/oschina_41790905/article/details/79475187
[4] Java Tutorial: https://www.liaoxuefeng.com/wiki/1252599548343744/1280507291631649