• Java 概述及安装使用



    Java是什么

    概述

    java是一种面向对象编程语言,不过经过多年的发展,现在已经演变为了一套强大的技术体系。Java设计者们将Java划分为3种结构独立但却彼此依赖的技术体系分支,它们分别对应着不同的规范集合和组件:

    • Java SE(标准版):主要活跃在桌面领域,主要包含了Java API组件;
    • Java EE(企业版):主要活跃在企业级领域,除了Java API组件外,还有Web组件、事务组件、分布式组件、EJB组件、消息组件等等,综合这些技术,开发人员完全可以构建出一个具备高性能、结构严谨的企业级应用,并且Java EE 也是用于构建SOA(面向服务架构)的首选平台;
    • Java ME(精简版):主要活跃在嵌入式领域,精简是因为它仅保留了Java API中的部分组件以及适应设备的一些特有组件;

    jdk主要功能变更

    • 1.5
      • 泛型
      • 增强循环,可使用迭代方式
      • 自动装箱拆箱
      • 类型安全的枚举
      • 可变参数
      • 元数据(注解)
    • 1.6
      • 继承Web Services
      • 脚本语言支持
      • 可拔插注解
      • Java Compiler API
      • JDBC 4.0API
    • 1.7
      • switch中使用字符串
      • 在创建泛型对象时应用类型推断
      • 在一个语句块中捕获多种异常
      • 支持动态语言
      • 数值类型可以用二进制字符串表示
      • null值自动处理
    • 1.8
      • Lambda表达式(允许把函数作为一个方法的参数)
      • 方法引用(与lambda联合使用,直接引用已有Java类的方法或构造器)
      • 接口有一个默认的实现方法
      • Stream API
      • Date Time API(加强对日期与时间的处理)
      • Optional(用于解决空指针异常)
      • Nashorn,JavaScript引擎
      • 详细参考
    • 1.9
      • 模块系统(包的容器)
      • JShell(交互式编程环境)
      • HTTP2客户端
      • 改进的Javadoc
      • 多版本兼容JAR包
      • 集合工厂方法
      • 私有接口方法(可以使用 private 访问修饰符在接口中编写私有方法)
      • 进程API
      • 改进钻石操作符
      • 多分辨率图片API
      • 轻量级JSON API
      • 响应式流
      • 详细参考

    JVM、JRE、JDK

    JVM:Java Virtual Machine,即Java虚拟机,java程序是运行在Java虚拟机上面的,不同平台有自己的虚拟机,因此java代码可以跨平台使用;详细看这篇

    JRE:Java Runtime Environment,即Java运行环境,包含了JVM和Java核心类库,它只是运行环境,没有任何开发工具;

    JDK:Java Development Kit,即Java开发工具包,它包含了JRE、Java各种类库以及工具。jdk和jre的bin目录最明显的区别就是:只有jdk文件下才有javac;

    具体关系图
    关系图



    为什么用Java

    Java的特点

    简单

    1. Java是C++的一个变种,但是摒弃了C++中复杂又容易引发程序错误的地方,如指针和内存管理;
    2. Java本身提供了丰富的类库,简化开发;

    面向对象

    1. 支持静态和动态风格的代码继承以及重用;
    2. Java还包括一个类的扩展集合,分别组成各种程序包

    分布式

    1. Java包括一个支持HTTP和FTP等TCP/IP协议的子库,因此Java程序可打开并访问网络上的对象,访问方式与访问本地文件系统几乎相同;

    健壮

    1. Java致力于检查程序在编译和运行时的错误,类型检查能帮助检查出许多早期出现的错误;
    2. Java自动操纵内存减少了内存出错的可能性;
    3. Java实现了真数组,避免了覆盖数据的可能;

    安全

    1. 编译时数据类型检查和自动内存管理使代码更健壮,减少内存损坏和漏洞;
    2. 字节码验证可确保代码符合JVM规范并防止恶意代码破坏运行时环境;
    3. 类加载器可防止不受信任的代码干扰其他Java程序的运行;
    4. 基于一个动态、可扩展、基于标准、可互操作的安全架构,内置加密、身份验证授权、公共密钥基础架构等安全特性;

    平台无关性

    1. Java源代码和字节码与机器无关,因此字节码文件能运行于不同的平台,实现一次编译,处处运行。
    2. 与机器有关的是JVM,JVM是建立在硬件和操作系统之上,实现Java字节码代码的解释执行功能,提供不同平台的接口;

    其实Java真正强大的地方是因为有着众多的技术拥护者和开源社区的支持,使Java无时不刻都保持着最充沛的体力与思维,驱动Java发展

    Java的缺点

    1. 内存操作自动化限制;
    2. 解释型语言,运行效率较低;
    3. 取消了指针操作,不够其他语言那样灵活方便;


    怎么使用Java

    安装与配置

    (Mac用户看这个 -> Mac安装Java

    1. JDK使整个Java的核心,开始先-> 下载jdk
    2. 安装java,新手直接一直下一步即可,但是要记住安装的目录。
      1. 第一个弹出安装的是JDK(注意标题栏)
      2. 第二个弹出安装的是jre
      3. 安装完成后,可以使用cmd输入:java -version 确认安装成功。
    3. 下载安装完成后需要配置环境变量:
      1. 此电脑→右键→属性→高级系统设置→环境变量
      2. 新建一个变量名为“JAVA_HOME”的系统变量,变量值为jdk安装目录(x:xxjdkxx)
      3. 新建一个变量名为“CLASSPATH”,变量值为“ %JAVA_HOME%libdt.jar;%JAVA_HOME%lib ools.jar ”;
      4. Path系统变量中,添加“ %JAVA_HOME%in ”和“ %JAVA_HOME%jrein ”这两个系统变量
    4. 验证安装
      1. 保存后打开命令行窗口;
      2. 分别输入java和javac,都正常显示则代表成功安装;

    开发工具

    开发Java通常使用两种工具,选一个点击进行安装,当然也可以选择其他IDE:


    第一个Java程序

    1. 打开代码编辑器,复制以下代码:
    public class HelloWorld {
        /* 第一个Java程序
         * 它将打印字符串 Hello World
         */
        public static void main(String []args) {
            System.out.println("Hello World"); // 打印 Hello World
        }
    }
    
    1. 保存为HelloWorld.java文件;
    2. 打开cmd窗口,进入目标文件所在文件夹位置;
    3. 输入 javac HelloWorld.java 进行编译;
    4. 无误后输入 java HelloWorld 即可运行;

    基本语法

    注释

    行级注释:// xxx
    块级注释:/* xxx */
    文档注释:/** xxx */

    标识符

    • 英文
    • 数字
    • 下划线
    • 美元符

    标识符规则:

    1. 不能数字开头
    2. 不能用关键字
    3. 遵循驼峰法则
    4. 尽量见名知意

    数据类型

    基本数据类型:

    • 整数 —— byte、short、int、long
    • 浮点数 —— float、double
    • 字符 —— char
    • 布尔型 —— boolean

    引用数据类型:

    • 数组
    • 类(String也在其中)
    • 接口

    数据类型的转换

    根据字节数由小到大排序:

    1. byte ——占用1字节,取值:-128~127(2^7)
    2. short ——占用2字节,取值:-32768~32767(2^15)
    3. int ——占用4字节,取值:-2147483648~2147483647(2^31)
    4. float ——占用4字节,取值:-3.4e+38 ~ 3.4e+38
    5. long ——占用8字节,取值:-9223372036854774808~9223372036854774807(2^63)
    6. double ——占用8字节,取值:-1.7e+308 ~ 1.7e+308

    显式转换(强转):大范围转到小范围,要在等号右边加上类型
    隐式转换(自动):小范围转到大范围

    变量

    变量和引用存储在栈中

    • 局部变量
    • 类变量(静态变量)
    • 成员变量(非静态变量)

    常量

    常量存储在常量池中

    • 整形常量
    • 浮点数常量
    • 字符型常量
    • 布尔型常量
    • 字符串常量

    Java符号以及优先级

    篇幅太长,引用其他大神博客进行参考



  • 相关阅读:
    POJ-3468 A Simple Problem with Integers(线段树、段变化+段查询、模板)
    CSUOJ-1978 LXX的图论题(最短路、Bellman-Ford判断负圈)
    CSU-1975 机器人搬重物(BFS)
    POJ-3522 Slim Span(最小生成树)
    POJ-1733 Parity game (并查集)
    libmysqlclient.so.16未找到方法
    python 不同目录间的模块调用
    python模块详解 logging
    python模块详解 re
    python模块详解 hashlib
  • 原文地址:https://www.cnblogs.com/zohnn/p/10807159.html
Copyright © 2020-2023  润新知