Java 基础 (Java 入门笔记) _
数据类型与转换
Java 是一种强类型语言, 变量需要定义后才能使用.
数据类型
基本数据类型

整数: byte, short, int, long (long 类型须在数字后加L) .
分别占用 1B, 2B, 4B, 8B.
浮点数: float, double (float 类型须在数字后加 F) .
分别占用 4B, 8B.
需注意: float 有舍入误差,需避免使用 float 进行比较.
字符: char, String (String 不是关键字, 是一种引用类型) .
char 使用单引号, 而 String 使用双引号.
char letter1 = 'A';
String letter2 = "B";
布尔值: boolean.
表示 "是" 与 "非".
boolean flag = ture;
if(flag == ture){}
if(flag ==) {}//这种写法更常用.
进制
| 进制 | 前缀 |
|---|---|
| 二进制 | 0b |
| 八进制 | 0 |
| 十进制 | - |
| 十六进制 | 0x |
char character = 'A';
System.out.println((int)character);//加上int可以打印出字符的Unicode编码.(强制转化)
类型转换
由于 Java 是强类型语言, 需要进行类型转化 (将不同类型转为相同类型) .

强制转换
由高到低, 手动转换.
格式: (类型)变量名
int a = 128;
byte b = (byte) a;
运算中只要有一个变量被转换了, 其他的也会一同被转换.
自动转换
由低到高, 自动转换.
int a = 128;
double b = a;
注意
-
布尔值不可以参与转换.
-
不可以转换成不相干的类型.
-
转换中可能会出现内存溢出和精度问题.
System.out.println((int) 12.3); //打印12, 丢失精度.
System.out.println((byte) 128);//打印-128, 内存溢出.
操作大数目时, 需要注意内存溢出.
int num1 = 10_0000_0000;
int num2 = 20;
System.out.println(num1 * num2); //由于内存溢出, 输出-1474836480.
long sum = num1 * (long) num2;//进行一处类型转换.
System.out.println(sum);//顺利打印出20000000000.
变量和常量
变量
Java 的每个变量必须声明其类型后才能使用.
变量是程序中最基本的单元, 包括变量名, 变量类型及作用域.
使用 类型 变量名 [=值] 进行定义,可以用逗号隔开以声明多个同类型的变量 (不建议) .
int a = 1, b = 2, c = 3;//为了程序可读性, 不要一行定义多个变量!
变量作用域
局部变量
只能在一个方法里面使用, 必须声明和初始化
方法: 如有public static void main(String[] args), 则有 main方法.
实例变量
从属于对象.
public class Demo {
int num = 23;
String char1 = "abc";
public static void main(String[] args) {
Demo Demo = new Demo();//new就是在内存中开辟了一块空间,可以对里面的数据进行操作.
System.out.println(Demo.num);//打印23.
System.out.println(Demo.char1);//打印abc.
}
}
如不初始化, 则会输出默认值 (0, 0.0, ect.)
布尔值的默认值为 false.
除了基本类型, 其他类型默认值均为 null.
类变量
从属于类, 使用 static 进行定义.
static 是一种修饰符, 修饰符不区分前后顺序.
public class Demo {
static int num = 23;
public static void main(String[] args) {
System.out.println(Demo.num);//不需要new便能成功执行.
}
}
常量
初始化后不能改变值, 可视作一种特殊的变量, 使用final进行定义.
final 也是一种修饰符.
常量名称一般使用大写字母.
命名规则
所有变量, 方法, 类名, 都需要遵循见名知意原则.
| 类型 | 大小写 | 驼峰原则 |
|---|---|---|
| 类成员变量 | 首字母小写 | ✓ |
| 局部变量 | 首字母小写 | ✓ |
| 常量 | 全部大写, 使用 _ 分割 |
- |
| 类名 | 首字母大写 | ✓ |
| 方法名 | 首字母小写 | ✓ |
驼峰原则: 除了第一个单词, 每个单词首字母大写.
运算符
| 名称类型 | 符号 |
|---|---|
| 算数运算符 | +, -, *, /, %, ++, -- |
| 赋值运算符 | = |
| 关系运算符 | >, <, >=, <=, ==, !=, instanceof |
| 逻辑运算符 | &&, ` |
| 位运算符 | &, ` |
| 条件运算符 | ?, : |
| 扩展赋值运算符 | +=, -=, *=, /= |
一元运算符只需要一个操作数, 二元, 三元也同理.
运算优先级: 括号最优先, 其次是一元运算符 (多使用括号养成良好习惯).
算数运算符
加, 减, 乘, 除, 模
+, -, *, /, % (模运算, 取余).
-
当不同类型一同运算时, 结果的类型取决于最高的类型. 如:
-
当结果会出现小数, 需要对结果进行强制转换, 否则只会出现整数.
long a = 100L;
int b = 10;
short c = 1;
System.out.println( a + b + c);//里面是long类型
System.out.println(b + c);//里面是int类型
System.out.println(c / b);//打印0
System.out.println((double) c / b);//打印0.1
如果+的前面有 String 类型, + 则变成字符串连接运算符,负责把多个字符串连接起来.
System.out.println(10 + 20);//打印30
System.out.println("Hello" + 10 + 20);//打印Hello1020
System.out.println(10 + 20 + "Hello" + 25);//打印30Hello25, 前面的会被运算
需要注意, 在字符串连接运算符前面的式子会先被计算.
自增自减
++ (自增), -- (自减). 两个都是一元运算符.
n++, n--(先数字, 后符号): 先执行, 后自增/减.
++n, --n (先符号, 后数字): 先自增/减, 后执行.
int a = 1, b = 1;
int result1 = a++;//a=1---先为result1赋值, 然后才自增
int result3 = a;//a=2
int result2 = ++b;//b=2---先给自己自增, 再给result2赋值
int result4 = b;//b=2
比较运算
更多推荐


所有评论(0)