- 单行注释
- 多行注释
- 文档注释
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
//输出 ----单行注释
//文档注释
}
}
二. 标识符
定义
类名、变量名、方法名都被称为标识符
注意点- 所有标识符都以字母、美元符、下划线开始
- 不能使用关键字作为变量名、或方法名
- 大小写敏感
- 强类型语言:要求变量的使用要严格符合规定,所有的变量都必须先定义后才能使用(安全性高、速度慢)
- 弱类型语言
- 基本类型(primitive type)
- 数值类型
- 整数类型
- byte 占1个字节 范围:-128-127
- Short 占2个字节 范围:-32768-32767
- Int 占4个字节 范围:-214783648-214783647
- Long 占8个字节
- 浮点类型
- float 占4个字节
- double 占8个字节
- 字符类型
- Char 占2个字节
- 整数类型
- Boolean 类型 占1位
- 数值类型
- 引用类型(reference type)
- 类
- 接口
- 数组
- 位(bit):是计算机中 内部数据储存的最小单位,11001100是一个八位的二进制数
- 字节(byte):是计算机中 数据处理的基本单位,习惯上用大写B来表示
- 1B(字节) = 8 bit(位)
- 字符:是指计算机中使用的字母、数字、字和符号
- 1bit = 1位 - 1byte= 8b - 1024B = 1KB - 1024KB = 1M - 1024M = 1G拓展
public class Demo01 {
public static void main(String[] args) {
//整数拓展: 进制 二进制0b 十进制 八进制0 十六进制0x
int i = 10;
int i2 = 010; //8进制
int i3 = 0x10; //16进制 0-9 A-F 16
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
System.out.println("-------");
//浮点数拓展:银行业务怎么表示钱? - > Bigdecimal 类
//float 字长有限 离散 舍入误差 大约 接近但不等于 最好完全使用浮点数进行比较
//double
float f = 0.1f;
double d = 1.0/10;
System.out.println(f==d);
System.out.println(f);
System.out.println(d);
float d1 = 23131312312312313f;
float d2 = d1 + 1;
System.out.println(d1==d2);
System.out.println("-------");
//字符拓展:
char c1 = 'a';
char c2 = '中';
System.out.println(c1);
System.out.println((int)c1); //强制转换
System.out.println(c2);
System.out.println((int)c2); //强制转换
//所有的字符本质还是数字
//编码 Unicode 表:97=a 65=A 2字节 65536 Excel 2^16=65536
//U0000 - UFFFF
char c3 = 'u0061';
System.out.println(c3);
//转义字符
//t 制表符
//n 换行
System.out.println("HellotWorld");
System.out.println("-------");
//对象 - 内存分析
String sa = new String("hi");
String sb = new String("hi");
System.out.println(sa == sb);
String sc = "hi";
String sd = "hi";
System.out.println(sc == sd);
//布尔值拓展
boolean flag = true;
if(flag == true){ }
if(flag){}
}
}
结果: 10 8 16 ------- false 0.1 0.1 true ------- a 97 中 20013 a Hello World ------- false true
- char 在Java 中是和 Unicode编码 形成一一对应的映射来存储的,而采取的编码方式则为 UTF-16
ASCII码 在计算机种中,1 字节对应 8 位二进制数,而每位二进制数有 0、1 两种状态,因此 1 字节可以组合出 256 种状态。如果这 256 中状态每一个都对应一个符号,就能通过 1 字节的数据表示 256 个字符。美国人于是就制定了一套编码(其实就是个字典),描述英语中的字符和这 8 位二进制数的对应关系,这被称为 ASCII 码。 ASCII 码一共定义了 128 个字符,例如大写的字母 A 是 65(这是十进制数,对应二进制是0100 0001)。这 128 个字符只使用了 8 位二进制数中的后面 7 位,最前面的一位统一规定为 0。四.类型转换 转换说明
- 由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换
低----------------------------------->高
byte, short,char - >int ->long ->float - > double (小数优先级大于整数) - 运行中,不同类型的数据显转换为同一类型,在进行运算
- 强制类型转换
- 自动类型转换
public class Demo02 {
public static void main(String[] args) {
int i = 128;
byte b = (byte)i; //byte8位127,128会导致内存溢出
//强制转换(类型)变量名 高- 低
System.out.println(i);
System.out.println(b);
//精度问题
System.out.println("------------------");
System.out.println((int)23.7);
System.out.println((int)-45.89f);
//自动转换 低 - 高
System.out.println("------------------");
char c = 'a';
int d = c +1;
System.out.println(d);
System.out.println((char)d);
}
}
结果集:
128
-128
------------------
23
-45
------------------
98
b
常见问题
计算时若知道会出现内存溢出,则先进行转换,再进行计算
private static void usualproblem() {
System.out.println("===============常见问题=================");
//操作比较大的数时,注意溢出问题
//JDK7新特性:数字之间可以用下划线分割
int money = 10_0000_0000;
int years = 20;
int sum = money * years;
System.out.println(sum); //计算溢出了
long sum2 = money * years;
System.out.println(sum2); //默认是int,转换long前已经有问题了
long sum3 = money *((long)years); //先把一个数转换为long
System.out.println(sum3);
//L l 大小写敏感
}
结果集:
===============常见问题=================
-1474836480
-1474836480
20000000000



