Java语言特性
Java随笔
目录
- Java语言特性
- 语言基础
- 变量
- 数据类型
- 自动类型转换
- 运算符
面向对象
简单性 (自动内存管理机制、不易内存溢出)
跨平台
*.java -----编译-----> *.class -----运行----->操作系统
源文件 (含字节码)字节码文件
先编译、再解释
将源文件编译成字节码文件,再将字节码文件进行解释执行
J V M 虚拟机,使软件再不同操作系统中,模拟相同的环境
J R E 运行环境,包含J V M和解释器,完整的Java运行环境
J D K 开发环境 包含 J R E + 类库 + 开发工具包(编译器和调试工具)
代码注释
// 单行注释 /*...*/ 多行注释 /** * 文档注释 */ 注释不参与编译
语法:
- 可以有字母(大小写) 、数字 、_ 、$ 组成,但不能以数字开头
- 不能与关键字、保留字重名
语言基础
变量
声明变量 数据类型 + 变量名 int money;
赋值 money = 20;
Java是强类型语言,变量的类型必须与数据类型一致
声明变量 的常用三种方式
1 先声明,再赋值
数据类型 变量名; int a ;
变量名 = 值 a = 1;
2 声明并赋值
数据类型 变量名 = 变量值 int a = 2;
3 多个变量的声明与赋值
数据类型 变量1,变量2,变量3=值3;
int a,b,c=3;
数据类型 变量名 = 值; 理解把等号 右边的值 赋值给左边的变量保存。 //定义一个变量 int age = 29; //访问一个变量 System.out.println(age) // 这里不要“”
public class VarDemo{ public static void main(String[] args){ //定义 int age = 20; //使用 //1.1 直接使用 System.out.println(age); //1.2 变量值传递 int xiaoMingAge = age; System.out.println(xiaoMingAge); //声明一个变量 int money; // 第一次赋值叫初始化 money = 100; System.out.println(money); // 修改变量值,变量允许执行期间修改值 money = 200; System.out.println(money); //声明多个变量 int a , b, c; a = 10086; b = 10000; c = 10010; System.out.printf("%d %d %d \n",a,b,c); // 声明多个变量 并赋值 int m , s=100, h=0; m = 1; System.out.printf("%d %d %d \n",m,s,h); int level = 12; //int level = 90; // Error 相同作用域下不允许出现同名变量 int sg ; // System.out.println(sg); // Error 局部变量必须先赋值后使用 int sb; //sb= "hello"; // Error 变量值实际类型必须和 变量类型一致(兼容)。 } }
数据类型
基本数据类型
byte short int long float double char boolean 字节类型 短整型 整型 长整型 单精度 双精度 字符 布尔 1字节 2字节 4字节 8字节 4字节 8字节 2字节 1字节 int 是整数的默认数据类型,如需要为long类型赋值较大的数的时候需要在 数的后面加上“L”
double是浮点数的默认数据类型,如需要为float类型赋值时,需要再值的后面加上“F”
引用数据类型
自定义类、String、接口、数组、枚举......
输入一个单引号
public static void main(String[] args) { char a = '''; //error }
几个转义字符
转义字符 含义 \n 换行 \t 缩进 \\ 反斜线 \' 单引号 \'' 双引号
自动类型转换
自动类型转换
两种类型相互兼容
目标类型大于源类型
public static void main(String[] args) { byte a = 10; int s = a; System.out.println(a); }
强制类型转换
两种类型相互兼容
目标类型小于源类型
public static void main(String[] args) { short a = 10; byte s = (byte) a; System.out.println(a); }
byte -> short -> int -> long -> float -> double
箭头右边变量 ,可以直接保存左边的变量,反之需要强转。
运算符
- 赋值运算符
=
int age = 100; int money; money = 200;
把等号右边的值赋给左边
算术运算符
+ - * / % 模
public static void main(String[] args){ int a = 5; int b = 2; int c = a+b; System.out.println(c); System.out.println(a+b); System.out.println(a-b); System.out.println(a*b); System.out.println((double)a/b); System.out.println(a%b); }
除法运算结果精度参考参与数的最高精度。如果参与数都是整数结果会砍掉小数
关系运算符
> < >= <= == !=
public static void main(String[] args){ int a = 10; int b = 14; System.out.println( a > b ); System.out.println( a >= b ); System.out.println( a < b ); System.out.println( a <= b ); System.out.println( a == b ); System.out.println( a != b ); }
运算结果都是布尔值 boolean
4.逻辑运算符
&& 、 || 、 !
运算法则: && 同真则真,一假则假 || 一真则真 同假则假
!取反
自增自减
++ 、 --
1 符号可以位于操作数前面或者后面 2 无论在前还是在后,只要执行完成,要么+1,要么-1,即在前 在后对操作数的影响都是固定的 3 在前在后也对于表达式的影响是不一样的 在前:先运算再赋值 在后:先赋值再运算
三目运算
A > B ? A : B;
public static void main(String[] args) { int a=10; int b =20; System.out.println( a> b ? 1 : 2 ); System.out.println( a> b ? "是的" : "否" ); }
a3b7a317d8bb 1 年前
9d24e1ad2f3c 1 年前