这里写目录标题
前言
- 数据类型可以看作是一些模型,我们要用的话就可以调用
- 要注意变量的作用域,命名规则
- 运算符多用就行了不要刻意的去记
一.数据类型
1.基本数据类型
-
整型:int
-
int 变量名 = 初始值; 代码示例: int num =10;//定义一个整型变量 System.out.println(num); /* 注意事项: 1. int 表示变量的类型是一个整型 2. 变量名是变量的标识. 后续都是通过这个名字来使用变量 3. Java 中 = 表示赋值(和数学不一样), 意思是给变量设置一个初始值. 4. 初始化操作是可选的, 但是建议创建变量的时候都显式初始化. 5. 最后不要忘记分号, 否则会编译失败. 6. // 表示注释. 注释作为代码的解释说明部分, 不参与编译运行. */
-
-
长整型变量long
-
1.基本语法格式: long 变量名 = 初始值; 代码示例: long num = 10L;//定义一个长整型变量 System.out.println(num); /* 注意事项: 1. 基本语法格式和创建 int 变量基本一致, 只是把类型修改成 long 2. 初始化设定的值为 10L , 表示一个长整型的数字. 10l 也可以. 3. 使用 10 初始化也可以, 10 的类型是 int, 10L 的类型是 long, 使用 10 L 或者 10 l 更好一些. */
-
-
浮点型:float double
-
单精度浮点型变量float
-
float 变量明 = 初始值; 代码示例: float num = 1.0f;//要记得加f或F System.out.println(num);
-
-
双精度浮点型变量double
-
1.基本语法格式 double 变量名 = 初始值; 2.代码示例: double num = 1.0; System.out.println(num);
-
-
-
字符型:char
-
1.基本格式 char 变量名 = 初始值; 2.代码示例: char ch = 'A'; /* 1. Java 中使用 单引号 + 单个字母 的形式表示字符字面值. 2. 计算机中的字符本质上是一个整数. 在 C 语言中使用 ASCII 表示字符, 而 Java 中使用 Unicode 表示字符. 因此一个字符占用两个字节, 表示的字符种类更多, 包括中文 */
-
-
字节类型变量
-
1.基本格式 byte 变量名 = 初始值; 2.代码示例: byte valua = 0; System.out.println(value); /* 注意事项: 1. 字节类型表示的也是整数. 只占一个字节, 表示范围较小 ( -128 -> +127 ) 2. 字节类型和字符类型互不相干 */
-
-
短整型short
-
1.基本语法格式 short 变量名 = 初始值; 2.代码示例: short value = 0; System.out.println(value); /* 注意事项: 1. short 占用 2 个字节, 表示的数据范围是 -32768 -> +32767 2. 这个表示范围比较小, 一般不推荐使用 */
-
-
布尔型:boolean
-
1.基本语法格式 boolean 变量名 = 初始值; 2.代码示例: boolean value = true; System.out.println(value); /* 注意事项: 1. boolean 类型的变量只有两种取值, true 表示真, false 表示假. 2. Java 的 boolean 类型和 int 不能相互转换, 不存在 1 表示 true, 0 表示 false 这样的用法. 3. boolean 类型有些 JVM 的实现是占 1 个字节, 有些是占 1 个比特位, 这个没有明确规定 */
2.基本数据类型转换
-
-
注意:
- 有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的
那种数据类型,然后再进行计算。 - byte,short,char之间不会相互转换,他们三者在计算时首先转换为int类型。
boolean类型不能与其它数据类型运算。 - 当把任何基本数据类型的值和字符串(String)进行连接运算时(+), 基本数据类
型的值将自动转化为字符串(String)类型。
- 有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的
-
强制类型转换
- 自动类型转换的逆过程, 将容量大的数据类型转换为容量小的数据类型。 使
用时要加上强制转换符: (), 但可能造成精度降低或溢出,格外要注意。 - 通常, 字符串不能直接转换为基本类型, 但通过基本类型对应的包装类则可
以实现把字符串转换成基本类型。 - 如: String a = “56”; int i = Integer.parseInt(a);
- boolean类型不可以转换为其它的数据类型。
- 自动类型转换的逆过程, 将容量大的数据类型转换为容量小的数据类型。 使
3.引用数据类型
-
String
-
1.基本语法格式 String 变量名 = "初始值"; 2.代码示例: String name = "zhangsan"; System.out.println(name); /* 注意事项: 1. Java 使用 双引号 + 若干字符 的方式表示字符串字面值. 2. 和上面的类型不同, String 不是基本类型, 而是引用类型(后面重点解释). 3. 字符串中的一些特定的不太方便直接表示的字符需要进行转义 */
-
-
数组
-
一维数组 1.基本语法格式 int 变量名[] = {初始值1,初始值2...}; 2.代码示例: int arry[5]={1,2,3,4,5}//定义了一个整型数组,大小为5 /* 注意: 1.数组的下标是从0开始的 2.数组内的元素不能多于定义的大小 3.数组可以通过下标找到元素,数组名是首地址 */
-
-
类(class)
-
类也是java的一种引用类型
-
1.基本语法格式 修饰符 class 类名{ 修饰符 类型 字段1; 修饰符 类型 字段2; 修饰符 类型 字段3; } 2.代码示例 public class Person { private String name;//姓名 private int age; //年龄 private String sex;//性别 }
-
-
4.常用的转义字符
*
- 转义字符多用就行
二.变量
1.变量的概念
-
1.内存中的一个存储区域
2.该区域的数据可以在同一类型范围内不断变化
3.变量是程序中最基本的存储单元。包含变量类型、变量名和存储的值 -
变量的作用:用于在内存中保存数据
-
使用变量注意:
- Java中每个变量必须先声明,后使用
- 使用变量名来访问这块区域的数据
- 变量的作用域:其定义所在的一对{ }内
- 变量只有在其作用域内才有效
- 同一个作用域内,不能定义重名的变量
-
成员变量
- 实例变量(不以static修饰)
- 类变量(以static修饰)
-
局部变量
- 形参(方法、构造器中定义的变量)
- 方法局部变量(在方法内定义)
- 代码块局部变量(在代码块内定义)
-
注意:成员变量与局部变量异同
- 同:都有声明周期
- 异:局部变量除形参外,需要显示初始化
-
变量命名的
- 硬性指标:
- \1. 一个变量名只能包含数字, 字母, 下划线
\2. 数字不能开头.
\3. 变量名是大小写敏感的. 即 num 和 Num 是两个不同的变量
- \1. 一个变量名只能包含数字, 字母, 下划线
- 软性指标:
- \1. 变量命名要具有描述性, 见名知意.
\2. 变量名不宜使用拼音(但是不绝对).
\3. 变量名的词性推荐使用名词.
\4. 变量命名推荐 小驼峰命名法, 当一个变量名由多个单词构成的时候, 除了第一个单词之外, 其他单词首字母都大写
- \1. 变量命名要具有描述性, 见名知意.
- 硬性指标:
2.常量
-
1.字面值常量
-
10 // int 字面值常量(十进制) 010 // int 字面值常量(八进制) 由数字 0 开头. 010 也就是十进制的 8 0x10 // int 字面值常量(十六进制) 由数字 0x 开头. 0x10 也就是十进制的 16 10L // long 字面值常量. 也可以写作 10l (小写的L) 1.0 // double 字面值常量. 也可以写作 1.0d 或者 1.0D 1.5e2 // double 字面值常量. 科学计数法表示. 相当于 1.5 * 10^2 1.0f // float 字面值常量, 也可以写作 1.0F true // boolen 字面值常量, 同样的还有 false 'a' // char 字面值常量, 单引号中只能有一个字符 "abc" // String 字面值常量, 双引号中可以有多个字符.
-
-
2.fianl关键字修饰的常量
-
final int a =10; a= 20;//编译出错. 提示 无法为最终变量a分配值 //被final修饰的都不能被改变包括(类)
-
三.运算符
1.算术运算符
-
-
实例:实例整数变量A的值为10,变量B的值为20 public class Test { public static void main(String[] args) { int a = 10; int b = 20; int c = 25; int d = 25; System.out.println("a + b = " + (a + b) );//30 System.out.println("a - b = " + (a - b) );//-10 System.out.println("a * b = " + (a * b) );//200 System.out.println("b / a = " + (b / a) );//2 System.out.println("b % a = " + (b % a) );//0 System.out.println("c % a = " + (c % a) );//5 System.out.println("a++ = " + (a++) );//10 System.out.println("a-- = " + (a--) );//11 // 查看 d++ 与 ++d 的不同 System.out.println("d++ = " + (d++) );//25 System.out.println("++d = " + (++d) );//27 } }
2.关系运算符
-
-
实例: public class Test { public static void main(String[] args) { int a = 10; int b = 20; System.out.println("a == b = " + (a == b) );//false System.out.println("a != b = " + (a != b) );//true System.out.println("a > b = " + (a > b) );//false System.out.println("a < b = " + (a < b) );//true System.out.println("b >= a = " + (b >= a) );//true System.out.println("b <= a = " + (b <= a) );//false } }
3.位运算符
-
-
实例:假设整数变量 A 的值为 60 和变量 B 的值为 13 public class Test { public static void main(String[] args) { int a = 60; /* 60 = 0011 1100 */ int b = 13; /* 13 = 0000 1101 */ int c = 0; c = a & b; /* 12 = 0000 1100 */ System.out.println("a & b = " + c ); c = a | b; /* 61 = 0011 1101 */ System.out.println("a | b = " + c ); c = a ^ b; /* 49 = 0011 0001 */ System.out.println("a ^ b = " + c ); c = ~a; /*-61 = 1100 0011 */ System.out.println("~a = " + c ); c = a << 2; /* 240 = 1111 0000 */ System.out.println("a << 2 = " + c ); c = a >> 2; /* 15 = 1111 */ System.out.println("a >> 2 = " + c ); c = a >>> 2; /* 15 = 0000 1111 */ System.out.println("a >>> 2 = " + c ); } }
4.逻辑运算符
-
-
实例:逻辑运算符的基本运算,假设布尔变量A为真,变量B为假 public class Test { public static void main(String[] args) { boolean a = true; boolean b = false; System.out.println("a && b = " + (a&&b));//false System.out.println("a || b = " + (a||b) );//true System.out.println("!(a && b) = " + !(a && b));//true } }
-
短路逻辑运算符
-
使用与逻辑运算符时,在两个操作数都为true时,结果才为true,但是当得到第一个操作为false时,其结果就必定是false,这时候就不会再判断第二个操作了。
-
例: public class LuoJi{ public static void main(String[] args){ int a = 5;//定义一个变量; boolean b = (a<4)&&(a++<10); System.out.println("使用短路逻辑运算符的结果为"+b);//false System.out.println("a的结果为"+a);//6 } }
-
5.赋值运算符
-
public class Test { public static void main(String[] args) { int a = 10; int b = 20; int c = 0; c = a + b; System.out.println("c = a + b = " + c );//30 c += a ; System.out.println("c += a = " + c );//40 c -= a ; System.out.println("c -= a = " + c );//30 c *= a ; System.out.println("c *= a = " + c );//300 a = 10; c = 15; c /= a ; System.out.println("c /= a = " + c );//1 a = 10; c = 15; c %= a ; System.out.println("c %= a = " + c );//5 c <<= 2 ; System.out.println("c <<= 2 = " + c );//20 c >>= 2 ; System.out.println("c >>= 2 = " + c );//5 c >>= 2 ; System.out.println("c >>= 2 = " + c );//1 c &= a ; System.out.println("c &= a = " + c );//0 c ^= a ; System.out.println("c ^= a = " + c );//10 c |= a ; System.out.println("c |= a = " + c );//10 } }
6.其他运算符
-
条件运算符(?:)
-
件运算符也被称为三元运算符。该运算符有3个操作数,并且需要判断布尔表达式的值。该运算符的主要是决定哪个值应该赋值给变量
-
实例:public class Test { public static void main(String[] args){ int a , b; a = 10; // 如果 a 等于 1 成立,则设置 b 为 20,否则为 30 b = (a == 1) ? 20 : 30; System.out.println( "Value of b is : " + b );//30 // 如果 a 等于 10 成立,则设置 b 为 20,否则为 30 b = (a == 10) ? 20 : 30; System.out.println( "Value of b is : " + b );//20 } }
-
-
instanceof运算符
-
该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)
-
如果运算符左侧变量所指的对象,是操作符右侧类或接口(class/interface)的一个对象,那么结果为真。
-
String name = "James"; boolean result = name instanceof String; // 由于 name 是 String 类型,所以返回真
-
-
7.java运算符优先级
四.进制转换
-
什么是进制:进制也就是进位计数制,是人为定义的带进位的计数方法。
-
进制的四种常用表示(整数)
- 二进制(binary):0,1满2进1,通常以0b或0B开头。
- 十进制(decimal):0-9,满10进1.
- 八进制(octal):0-7,满8进1.以数字0开头。
- 十六进制(hex):0-9以及A-F,满16进1,以0x或0X开头表示,这里A-F不区分大小写。
-
二进制补码
- 二进制的整数有如下三种形式:
- 原码:直接将一个数值换成二进制数。最高位是符号位
- 负数的反码:是对原码按位取反,只是最高位(符号位)确定为1。
- 负数的补码:其反码加1。
- 计算机以二进制补码的形式保存所有的整数。
- 正数的原码、反码、补码都相同
- 负数的补码是其反码+1
- 二进制的整数有如下三种形式:
运算符中的图片来源于菜鸟教程