007.JDK的安装
- JRE与JDK
jre:Java的运行环境,包含了Java虚拟机和库类
jdk:Java开发工具集,jre基础上增加了一些开发工具 - JDK支持
主要版本8和11,他俩是长期支持的 - JDK下载
安卓逆向工具对Java版本要求不高,我们使用Java8 - JDK安装 取消更新
- JDK配置 JAVA_HOME环境变量 %JAVA_HOME%\bin
008.Java语言特点
- 面向对象、强类型、垃圾自动回收
- 解释型语言
解释型语言:Java JavaScript Python Php
编译型语言:C/C++ - 跨平台
public class Demo {
public static void main(String[] args){
System.out.println("Hello China!");
}
}
编译 javac Demo.java
运行 java Demo
Demo.java --> Demo.class --> win/linux/mac版 jvm虚拟机 --> Windows/Linux/Mac
Demo.class 不需要修改代码,既可以在Windows平台运行,也可以在Linux平台运行,靠的就是虚拟机
Java虚拟机机制屏蔽了底层运行平台的差别,实现了"一次编译,到处运行"
009.第一个Java程序
- 下载安装sublime text4
(讲师推荐的用notepad++,但它的作者是个有名的太毒) - Hello.java
public class Hello {
public static void main(String[] args){
System.out.println("Hello China!");
}
}
- Java程序的注意事项
- Java源文件以.java为扩展名
- Java语言区分大小写
- public class Hello 表示Hello是公有类
- 一个文件只能有一个公有类,并且类名要与文件名一致,其他类数量不限
- {} 代码的开始和结束
- main主方法,是程序入口,必须有,必须这么写不能改
- 打印输出字符串
- 语句结束用;
- 所有的符号都是英文状态下的
- 源文件使用UTF-8编码
010.Java语言基础组成(语言共性)
- 注释
- 变量、数据类型
- 关键字、保留字
- 标识符
- 常量
- 运算符
- 语句
- 数组
- 函数
- 类、集合、反射、加密库
- IO流、socket、泛型
- 多线程、正则
011.注释
- 单行注释
格式://注释文字 - 多行注释
格式:/注释文字/ - 被注释的文字不会被JVM解释执行
多行注释不能嵌套 - 由于编码问题导致编译失败
由于cmd默认的是gbk编码,而我们写出来的程序是utf-8,所以当程序中出现中文,编译时就会出问题。可以通过设置环境变量,让编译时用utf-8
设置环境变量 JAVA_TOOL_OPTIONS -Dfile.encoding=UTF-8
012.Java常用编码
打开cmd->标题栏右键->属性,可以看到目前cmd的默认编码方式是gbk
在cmd下用type打印Hello.java,可以看到出现了乱码,原因就是编码不匹配
- 字符和码值的对应关系是通过字符编码表决定的
- 常见字符编码
- ASCII(用1个字节表示,总共128个字符,其中有一些字符是不可见字符)
- Unicode(字母、数字、汉字都是使用2个字节表示)
- UTF-8(变长的编码方式,1-6个字节表示,字母数字用1个字节,汉字用3-4个字节。是使用最广的一种Unicode的实现方式)
- gbk(字母数字用1个字节,汉字用2个字节表示)
- gb2312(范围比gbk小)
Unicode、UTF-8兼容ASCII码表
推荐文章:
ANSI是什么编码
百度百科:utf-8
推荐书籍
《编码:隐匿在计算机软硬件背后的语言》
013.cmd设置默认编码utf-8
在cmd下输入chcp 65001,回车,活动页的编码变为utf-8,但是这种修改是临时的,如果新开一个cmd,编码依然是gbk
永久修改cmd的编码为utf-8,需要通过修改注册表
win+r运行,输入"regedit",找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor
然后"右键-新建",选择"字符串值","名称"列填写"autorun", 数值数据填写"chcp 65001"
再次在运行中输入cmd,就会自动把编码格式设置为UTF-8
之后再打开cmd,默认就是utf-8