- 我们要建立一个新的语言
- 语法有点像c
- 没有指针
- 没有内存管理
- 真正的可移植性,编写一次,到处运行
- 面向对象
- 类型安全
- 高质量的类库
java三大版本
javaSE:标准版(桌面程序,控制台开发…)
javaME:嵌入式开发(手机,小家电…)这个版本已经基本淘汰了
javaEE:E企业级开发(web端,服务器开发…)
JDK,JRE,JVM
- JDK: Java Development Kit java 开发者工具
- JRE : Java Runtime Environment java 运行环境
- JVM: Java Virtual Machine java 虚拟机
- java -version,在cmd控制台中可以检查电脑是否安装java,查看java的版本。
HELLO WORLD
-
随便新建一个文件夹,存放代码
-
新建一个java文件
-
文件后缀名为.java
-
Hello.java
-
注意点,系统可能没有显示后缀名,我们需要手动打开
-
-
编写代码
public class Hello{ public static void main(String[] args){ System.out.print("Hello World!"); } }
-
编译Javac java文件
- 在文件的当前目录,上面的导航栏前面,cmd+空格,即可跳转到cmd控制台(头一回知道这个)
加载图片的方法:!+[名字]+(地址)
- 在控制台,javac Hello.java,文件夹中会生成一个class后缀的文件。
- 再次输入 java Hello,即可输出Hello World!
## Java程序的运行机制
- 编译型
- 解释型
- 程序运行机制
使用IDEA
psvm和sout两个快捷键。
file中Settings,搜索font可以更改字体大小。可以百度搜索别的更改样式。
java基础语法
- 注释(书写注释是一个非常好的习惯)不会被执行,给别人看的。
- // 单行注释
- /* */ 多行注释
- JavaDoc:文档注释 /** */(学得比较少,一般大公司用)
- 有趣的代码注释,百度直接搜就有。佛祖保佑,狗头。
标识符
- 关键字
- Java 所有的组成部分都需要名字。类名,变量名及方法名都被称为标识符。
- 关键字就以下那么多。
标识符注意点
- 所有的标识符应该以字母(大小写都行),美元符号($),下划线(_)开始。
- 首字符之后,则可以带有数字。
- 不能和关键词重名
- 标识符,是大小写敏感的
- 中文也可以,但不建议。
数据类型
- 强类型语言
- 要求变量的使用要求严格符合规定,所有的变量都必须先定义才能使用(java)
- 弱类型语言
- java的数据类型分为两大类
- 基本类型 primitive type(先学这个)八大基本类型,需要背出。
- 引用类型 reference type
(下面图片是b站up主的,狂神解说java)
字节
- 位(bit):是计算机内部数据存储最小的单位,11001100是一个八位二进制数。
- 字节(byte):是计算机中数据处理的基本单位,习惯上用大写B来表示。
- 1 B = 8 bit, 1B = 8b
- 字符:是指计算机中使用的字母,数字,字和符号。
- 1024B = 1 KB
- 1024KB = 1M
- 1024M = 1G
基本类型的拓展
- 整数类型:
- 二进制 0b,是零b,不是字母ob
- 十进制
- 八进制 0
- 十六进制 0x
int i = 10;
int i2 = 010;//八进制
int i3 = 0x10;//十六进制0x 0~9 A~F
(语言方法:~~~加上语言类型)
- 浮点数类型:
- float
- double
- 浮点数 有限 离散 舍入误差 大约 接近但不等于
- 最好完全避免使用浮点数进行比较
- 最好完全避免使用浮点数进行比较
- 最好完全避免使用浮点数进行比较
-
使用 BigDecimal(还没学) 数学工具类,进行比较(银行业务比较问题)
float f = 0.1f; // double d = 1.0/10; System.out.println(f==d); // false 判断f和d是否相同 float d1 = 134133211616516551f; float d2 = d1 + 1; System.out.println(d1 == d2);// true //浮点数进行比较是有问题的
- 字符拓展
- 强制转换
- 所有的字符本质都是数字
char c1 = 'a';
char c2 = '中';
System.out.println(c1);
System.out.println((int)c1);//97 强制转换
System.out.println(c2);
System.out.println((int)c2);//20013
- 编码 Unicode 表 ,(U0000 - UFFFF,0-65536)范围,97 = a,20013 = 中。
char c3 = '\u0061';//Unicode表的正常输出方式
System.out.println(c3);//a
- 转义字符
// \t 制表符
// \n 换行
System.out.println("Hello\tWorld");// Hello World
- 对象 从内存分析(暂时没学)
String sa = new String("Hello World");
String sb = new String("Hello World");
System.out.println(sa == sb);//false
String sc = "Hello World";
String sd = "Hello World";
System.out.println(sc == sd);//true
- 布尔值拓展
boolean flag = true;
//下面两个if一个意思
if(flag==true){}//新手
if(flag){}//老手
//Less is More 代码要精简。