变量、数据类型、运算符
1-二进制、数字化语录、摩斯密码、脑机接口
2-二进制和十进制的转化
十进制转换二进制
二进制转十进制
3-注释_单行和多行_注释和字节码文件的关系
注释
4-标识符_关键字_驼峰原则
标识符和关键字
示例:合法的标识符
int a = 3;
int _123 = 3;
int $12aa = 3;
int 变量1= 55;//不推荐中文命名标识符
关键字/保留字
5-变量的本质_内存画图_变量的声明和初始化
变量的本质
变量的声明
public class TestVariable {
public static void main (String[] args()){
int age =18;
int b; //此处只是声明了变量b没有初始化;
int x = 0,y = 0, z = 1;
System.out.println(age);
b = 0; //变量使用之前必须初始化!
System.out.println(b);
System.out.println(z);
}
}
6-变量的分类和作用域(局部变量、成员变量、静态变量)
变量的分类和作用域
public class TestVariable {
int a =3; //成员变量
static int b = 4; //静态变量
public static void main (String[] args()){
//局部变量
int age =18;
int b; //此处只是声明了变量b没有初始化;
int x = 0,y = 0, z = 1;
System.out.println(age);
b = 0; //变量使用之前必须初始化!
System.out.println(b);
System.out.println(z);
}
}
局部变量(local variable)
方法或语句块内部定义的变量。生命周期是从声明位置开始到到方法或语句块执行完毕为止。局部变量在使用前必须先声明、初始化(赋初值)再使用。
成员变量
静态变量
7-常量和final
常量(Consant)
示例
常量定义用大写字母,用下划线分割单词
字符常量、符号常量
变量和常量命名规范
public class TestConstant {
public static void main(String[] args){
final double PI = 3.14;
//PI = 3.1415; //无法为常量再次分配值
final MAX_SPEED = 120 ; //常量的命名:全用大写字母,用下划线分割。
int r = 4 ;
double area = PI*r*r;
double circle = 2*PI*r
System.out.println("面积是:"+area);
System.out.println("周长是:"+circle);
}
}
8-基本数据类型介绍
基本数据类型
9-整形变量和整形常量和各种进制
整形
public class TestInt {
public static void main(String[] args){
intt a = 100 ; //十进制
intt b = 015 ; //八进制
intt c = 1xff ; //十六进制
intt d = 0b1001010101 ; //二进制
byte e = 50;
short f = 300;
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
int salary = 30000; //整型常量默认类型是int
long yearSalary = 3000000000L; //把整型常量定义为long类型
System.out.println("你的年薪:"+yearSalary);
}
}
10-浮点型_float_double
/*
*测试浮点数的基本用法
*/
public class TestFloatNumber {
public static void main(String[] args){
double d1 =3.14;
double d2 =3.14E2; //科学计数法
float f1 = 1.65F; //浮点常量的默认类型是double,改float需要后面加F;
//浮点数是不精确的,尽量不要直接比较
float f2 = 0.1F;
double d3 = 1.0/10;
System.out.println(f2==d3); //一个=是赋值;两个==是比较。
float f4 = 2323645354561L;
float f5 = f4+1;
System.out.println(f4==f5);
System.out.println(d2);
}
}
11-char字符集_字符集历史_转义字符
转义字符表
/*
*字符集测试
*/
public class TestChar {
public static void main (String[] args){
char c1 = 'a';
char c2 = '中';
char c3 = '\u0061';
System.out.println(c1);
System.out.println(c2);
System.out.println(c3);
//java中字符串不是基本数据类型;
String str = "我爱中国";
System.out.println(str);
//转义字符
char c5 = '\n'
System.out.println("a\n"b\"\nc\n\'e\'\n\\f\ng");
System.out.println("o\tp\tq\tr\ts\tt");
}
}
12-布尔型boolean
/**
*测试boolean类型
*/
public class TestBoolean {
public static void main(String[] args){
boolean b1 = false;
boolean b2 = false;
if(b1){ //if(b1==true)
System.out.println("b1是true!");
}
else{
System.out.println("b1是false");
}
}
}
13-运算符总体介绍
14-算术运算符_自增自减
/**
* 测试算术运算符
*/
public class TestOperator01 {
public static void main(String[] args){
int a = 3;
int b = 4;
int c = a + b;
int d = a - b;
int e = a * b;
int h = a / b;
System.out.println(c);
System.out.println(d);
System.out.println(e);
System.out.println(f);
long c = a + b ;
double d = 3+3.14;
int d2 = 32 / 3; //两个整数相除,直接保留结果的整数部分没有四舍五入
//+,-,*,/
//取余数
int g = 10%3;
System.out.println(g);
//测试自增自减
int j = 30;
j++; //相当于: j = j+1 ;
j--; //相当于: j = j-1 ;
j=10;
int h = j++ ; //j++ 先赋值,后自增
j=10;
int h = ++j ; //++j 先自增,后赋值
System.out.println(h);
System.out.println(i);
}
}
15-赋值和赋值扩展运算符
/**
* 测试扩展运算符的用法
*/
public class TestOperator02 {
public static void main(String[] args){
int a = 3;
int b = 4;
a += b ; //相当于:a = a+b
System.out.println(a);
a = 3;
a *= b+3; //相当于: a = a*(b+3)
System.out.println(a);
}
}
16-关系运算符详解
/**
* 测试关系运算符的用法
*/
public class TestOperator03 {
public static void main(String[] args){
int a = 3;
int b = 4;
boolean c = a>b;
System.out.println(c);
char d = 'h';
//char值位于0~65536之间,可以通过(int)强制转型成数字
System.out.println((int)d);
boolean e = d>100;
System.out.println(e);
}
}
17-逻辑运算符
/**
* 测试逻辑运算符的用法
*/
public class TestOperator04 {
public static void main(String[] args){
//测试逻辑运算符
boolean b1 = ture;
boolean b2 = false;
System.out,println(b1&b2); //与:有一个false,结果: false
System.out,println(b1|b2); //或: 有一个true,结果:true
System.out,println(!b2); //取反
System.out,println(b1^b2); //异或:相同false,不同true
//短路与、短路或
//int b3 = 3/0; //会报不能除以0的异常
boolean b3 =1>2 && (4<3/0);
System.out,println(b3);
}
}
18-位运算_移位运算
/**
* 移位运算符的用法
*/
public class TestOperator05 {
public static void main(String[] args){
int a = 7;
int b = 8;
System.out.println(a&b); //结果为:0
System.out.println(a|b); //结果为:15
System.out.println(a^b); //结果为:15
System.out.println(~b); //结果为:-9
//移位
//乘以2,除以2,使用位移操作,最快!!!
int c = 5<<2; //相当于: 5*2*2
System.out.println(c);
System.out.println(40>>3) //相当于; 40/2/2/2
}
}
19-字符串连接
/**
* 字符串连接的用法
*/
public class TestOperator06 {
public static void main(String[] args){
String a = "30";
int b = 4;
System.out.println(a+b);
//条件是String,不是char。若是char,则仍是加法
char c1 = 'h';
char c2 = 'i';
System.out.println(c1+c2);
//通过加空字符集,让整个+都变成连接符
System.out.println(""+c1+c2)
}
}
20-条件运算符详解
/**
* 条件运算符连接的用法
*/
public class TestOperator07 {
public static void main(String[] args){
int score = 90;
String a = score<60?"不及格":"及格"
System.out.println(a);
if(score<60){
a = "不及格"
} else{
a = "及格"
}
int x = -100;
int flag = x > 0 ? 1 : (x == 0 ? 0 : -1);
System.out.println(flag);
}
}
21-运算符优先级问题
/**
* 运算符优先级
*/
public class TestOperator08 {
public static void main(String[] args){
//优先级问题的用法
boolean s1 = ture,s2 = ture,s3 = false;
System.out.pringtln(s1||s2&&s3);
//建议使用小括号组织表达式
boolean s4 = (3>1||4>3)&&(3<5);
System.out.println(s4);
}
}
22-自动类型转换
/**
* 类型自动转换测试
*/
public class TestTypeAutoConvert {
public static void main(String[] args){
//容量小的类型可以自动转换成容量大的类型
int a = 2345;
long b = a ;
//int c = b; //long类型不能自动转换为int
double d = b;
float f = b ;
//特列:整型常量是int类型,但可以自动转换成:byte/short/char
//只要不超过对应类型的表述范围
byte h1 = 123 ;
//byte h2 = 1234; //1234超过了byte的表述范围
char h3 = 97+23;
System.out.println(h3);
}
}
23-强制类型转换
/**
* 类型强制转换测试
*/
public class TestTypeCast {
double a = 3.94152;
int b = (int)a; //结果: 3 浮点数强制转为整数,直接丢失小数部分
System.out.println(b);
int c = 97;
char d = (char)c;
System.out.println(d);
//强制转换类型,超过了表述范围,则会转成一个完全不同的值
byte e = (byte)300;
System.out,println(e);
}
}
24-j基本类型转换常见的错误_溢出问题
/**
*溢出错误测试
*/
public class TestTypeCast {
//测试常见错误之:溢出
int money = 1000000000; //10亿int years = 20;
//返回的total是负数,超过了int的范围int total = money*years ;
System. out.println ( "total="+total);
//返回的total仍然是负数。默认是int,因此结果会转成int值
long total1 = money*years;
system.out.println ( "total1="+total1) ;
//返回的total2正确:先将一个因子变成long,整个表达式发生提升。
// long total2 = money* ( ( long ) years) ;
long total2 = 1L*money*years;
System.out.println ( "total2="+total2);
}
}
25-使用scanner处理键盘输入
/**
*Scanner测试
*/
public class TestScanner {
Scanner s = new Scanner(System.in);
//输入用户名、年龄、月薪
System.out.println("请输入用户名:");
String uname = s.nextLine();
System.out.println("请输入你的年龄");
int age = s.nextInt();
System.out.println("请输入你的月薪");
double monthSalary = s.nextDouble();
System.out.println("\n\n\n\n\n\n");
System.out.println("*****年薪计算器*****");
System.out.println("用户名:"+uname);
System.out.println("年龄"+age);
System.out.println("年薪"+(monthSalary*12));
}
}