目录
单位换算
8位(bit) = 1字节 (byte)
1024字节 = 1KB(千字节)
1024KB = 1MB(兆字节)
关键字||保留字
java内部使用了的单词
不能作为类名或变量名出现
注释
单行注释 // 多行注释 /* */ 文档注释 /** */
JAVA内存
栈:一般存储基本数据类型
堆:一般存储引用数据类型
1、变量
在程序运行过程中值不可以发生改变
变量:一个数据储存空间的表示
不同数据存入具有不同内存地址的空间,相互独立
内存地址不好记,怎么办?
通过变量名可以简单快速地找到数据
房间——变量
房间名字——变量名
房间类型——变量类型
入住的客人——变量值
变量名规则
英文的,有意义的
1、字、下、美、人、数、骆驼有意义
2、不能使用关键字,如public、class [红色] (关键字Java本身已经使用)
3、保留字[灰色](Java本身已经使用但没有使用 )
帕斯克命名法:
大骆驼:类名 如:ShopUser 小骆驼:变量,方法 如:showUser
使用下划线 user_name
2、Java常用数据类型(除此还有引用数据类型)
数据类型说明
数据类型 | 大小 | 取值范围 |
---|---|---|
byte | 1字节8位 | -128 ~ +127 |
int | 4字节32位 | -2147483648(-231) ~ + 2147483647(231-1) |
short | 2字节16位 | -32768 (-215) ~ + 32767 (+215-1) |
long | 8字节64位 | -263 ~ + 263-1 |
float | 4字节32位浮点数 | 1.4E-45 ~ 3.4E+38 , -1.4E-45 ~ -3.4E+38 |
double | 8字节64位浮点数 | 4.9E-324 ~ 1.7E+308, -4.9E-324 ~ -1.7E+308 |
变量声明及使用(不能重复;未赋值无法输出)
第一步:声明变量,根据数据类型在内存申请空间
数据类型 变量名;
int money;
第二步:赋值,即“将数据存储至对应的内存空间”
变量名 = 数值;
money = 1000;
第一步和第二步可以合并
数据类型 变量名=数值;
int money = 1000;
第三步:使用变量,即“取出数据使用”
public static void main(String[ ] args){
int money = 1000;
//输出消息到控制台
System.out.println(money);
}
八大数据类型和引用数据类型
public static void main(String[ ] args){
//八大数据类型
int i = 0;//整型
byte b = 0;//字节类型
short s = 0;//短整型
long l = 20L;//长整型(需要添加L)
float f = 3.33F;//单精度浮点型(需要添加f)
double d = 33.33;//双精度浮点型
char c = '男';//字符类型:使用单引号
boolean bool = true;//布尔类型:false假 true真
//引用数据类型:
String str="asda12314564";//字符串类型(注意S大写):使用双引号
}
3、常量(其值不能改变)【final】
优点:比较安全
推荐做法: (1)常量名通常大写 (2)不同字符使用下划线分隔 (3)只能被赋值一次,通常定义时即对其初始化
//关键字final定义常量
final int NUM = 10;
final double PI = 3.14;
int r = 2;
double area = PI * r * r;
4、Scanner的使用(如何接受用户键盘输入的值)
第一步:导入Scanner类
import java.util.*;
第二步:创建Scanner对象
Scanner input = new Scanner(System.in);
第三步:获得键盘输入的数据
int now = input.nextInt();
5、数据类型转换
隐式类型转换(自动转换)
int num1 = 2;
double num2 = num1;
自动类型转换规则(小转大)
规则1:如果一个操作数为double型,则整个表达式可提升为double型 规则2:满足自动类型转换的条件 两种类型要兼容:数值类型(整型和浮点型)互相兼容 目标类型大于源类型: 例如:double 型大于 int 型
强制类型转换规则(大转小)
int b = (int)10.2;
double a = 10;
int c = (int)a;//a被强制转换为int
赋值运算符的应用
如何借助变量以及赋值运算符实现两个数据的交换
int num1=8;
int num2=9;
//实现交换
int num3=num1;//先把1号放到3号
num1=num2;//再把2号放到1号
num2=num3;//最后3号放到2号
6、算数运算符
赋值运算符: =
基本的算术运算
+、-、*、/、%、++、--
复合算术运算符
=、*=、/=、%=
关系运算符
运算符 | 含义 | 范例 | 结果 |
---|---|---|---|
== | 等于 | 5==6 | false |
!= | 不等于 | 5!=6 | true |
> | 大于 | 5>6 | false |
< | 小于 | 5<6 | true |
>= | 大于等于 | 5>=6 | false |
<= | 小于等于 | 5<=6 | true |
=为赋值运算符,==为等于运算符
关系表达式的结果为布尔值
>、<、>=、<= 运算符的优先级别高于==、!=
>、<、>=、<=运算符只支持数值类型的数据比较
逻辑运算符
运算符 | 含义 | 运算规则 |
---|---|---|
&& | 短路与 | 两个操作数都是true,结果才是true |
|| | 短路或 | 两个操作数一个是true,结果就是true |
! | 非 | 操作数为true,结果为false |
! | 非 | 操作数为false,结果为true |
如果第一个操作数已经能确定表达式的值,第二个操作数就不必计算了;优先级别 ! > && > ||
int x=8;
int y=9;
System.out.println((++x==y)&&(++x!=y));
System.out.println(x);//true 10
int x=8;
int y=9;
System.out.println( (++x!=y)&&(++x==y));
System.out.println(x);//false 9
// && 只要有一个结果为false 最终结果就为false 否则为true
// || 只要有一个结果为true 最终结果就为true 否则为false
// ! 非 取反值
条件运算符
也称为:三目(三元)运算符
int min;
min = 5 < 7 ? 5 : 7;//5小于7是条件 结果是true输出表达式1 结果是false输出表达式2
System.out.println(min);
min = 10 < 7 ? 10 : 7;
System.out.println(min);
运算符优先级
1、单目运算符包括! ++ --,优先级别高
2、优先级别最低的是赋值运算符
3、可以通过()控制表达式的运算顺序,()优先级最高
4、从右向左结合性的只有赋值运算符、三目运算符和单目运算符
5、算术运算符 > 关系运算符 > 逻辑运算符