创建一个项目的三个步骤
1.创建一个项目[工程 ] java project
- 创建包package【包名:公司域名的倒置】
- 创建类class
java的数据类型
1.基本数据类型 整数 小数 【浮点数】 布尔值【真或假】 字符
1.1整数的数据类型 int------integer
int num=123;
数据类型 变量名称=456;
int num1=-999;
扩展:
整数的表示在计算机中往往还有其他进制
二进制:0011101 逢二进一 最大的数字是1,只有两个元素 0 1;
在java中使用二进制便是整数 0b 0101000;
int bin=0b001010101;
八进制:逢八进一 有八个元素 01234567 八进制中最大的数字是7
在java中表示八进制:在开头加一个0
int oct=0766,;
十六进制:逢十六进制一 有16个元素,0-9 abcdef
最大的数字是f
java中十六进制的表示 在开头加0x 0xacb1;
int hex=0xab23;
注:在java中 当代码出现红色下划线,表示代码出错,左边会出现带有红叉的小灯
java 中快捷键输出内容 syso sout
System.out.println(dot);
1.2 小数 又称为浮点数 double
double dot=1.23;
double dot1=-2.33;
1.3 布尔值
编程中 真假 男女 是否 对 只有二值的属性,一般采用布尔值表示
性别 默认;女 true女 false 男 保密
布尔的数据类型表示:boolean
boolean gender=true;
System.out.println(gender);输出下
1.4 字符 :char
使用单引号包裹,‘ ’,‘a’,在单引号中 只能包含一个字符;能包含任意字符,能包含汉字,能包含特殊的字符,比如¥ √等。
char ch1=‘a’,不能是char ch2=‘ab’;不能是两个字符
2.基本数据类型占用字节大小和表示范围
整数:有4种表示
byte : 1字节 8位【8bit】 表示的范围:-128~127
0000 0000 2*****2 *****2***** 2 *****2* 2*2 7个2连乘=128,符号位:1表示负数,0表示整数
0001 1100正数 1000 1101 负数
byte b1=25;
byte b2=129;---这个超出了范围,在java中会报错
short:短整型,是相对int来说得,int是4个字节,short占2个字节,long是8个字节
short范围 : -32768~32767===== -2的15次方~2的15次方-1
int[默认]:整型 整数 4字节 范围:-2147483648~2147483647 =====-2的31次方~2的31次方-1,这个数据在10位以内
long: 长整型 范围-263~263-1
long l1=12345678912344565767;这个默认的数据 类型是整型,如果超过10位,需要在数字最后面加个L, 数据在20位以内
浮点数
单精度的浮点数
float 浮动
float f1=1.23 默认1.23是双精度的的,会报错,在最后面加个F,强制单精度 float f1=1.23F;F大小写都可以
double 双精度 double d1=2.333;
单精度与双精度的区别:
精确度不同
float 在内存中只占4个字节,有32位
0000 0000 整数[8位指数] 0000 0000 0000 0000 0000 0000[23表示小数==小数点后6位]
double 占8个字节,有64位,前面的11位表示整数,后面52位表示小数==小数点后15位
布尔
占1个字节 0 假 false 1 真true
字符
占2个字节 0-65535,是从0开始的,只有正没有负数
常量
常量就是不会变化的值,也就是字面上的值
final double pi=3.14;final是最终的,能让数据不被修改,是不变的,不能改的
变量
定义变量
数据类型 变量的名称=值
int age=18;
age=19;
age=20;
字符串
字符串是多个字符 连到一起,成串,使用双引号包裹”写什么都可以“
字符串的数据类型 String S大写
String string=”I Love java,要什么自行车“
注意:字符串的值可以是空的,字符用单引号字符不能是空的
数据类型转换
不同类型之间的数据是可以进行计算的,需要经过类型转换
转换方式:
1.自动类型转换[隐式类型装换]
byte byte1=12;
byte byte2=bytel1+2--这个会报错;//14 2类型是int 自动类型转换:将小类型转大类型(自动转),byte->int
byte byte2=int(12)+int(2)这个是错的
int byte2=int(12)+int(2) 这个是对的
byte byte2=(byte)(byte1+2)这个是对的
注意;基本常用数据类型排序
byte 补充:上下快速移动整行代码 alt+方向键上/下 2.强制类型转换 数据类型 变量名=(要回的类型)值; short sh1=1234; short sum=(short)(sh1+1); byte by1=(byte)129; 我们byte的范围是-128--127,如果强制转,可能会丢失精度,比如这个例子,输出就是-127 补充:ASCII码表中的字符,对应java中的char类型 System.out.println(0+'a');小写的a在ASCII码表中是97,能通过这种方式,快速转成整型,0是整型 System.out.println(char)(0+'a');这个是强转成字符型 举例:将小写字母转大写字母 int num1=123; int num2=456; int sum=num1+num2; int dis=num1-num2; int mul=num1*num2; int div=num1/num2 ; 在java中 整数除以整数,结果为整数,要想得小数,乘以1.0,将其中一个转化为小数,如下: double div=num1*1.0/num2; 因为1.0是double,会自动类型提升 字符串链接”成都“+”双流“=”成都双流“ ++ 自增 每次自动加一 int age=17; age=age+1; age=18; age=age+1; age=19; age=age+1; 简便写法int age=17; age++; age++; System.out.println(age); ++ 自增 自增分前后 age++; 后自增,规则是先赋值,后自增, ++age; 前自增,规则是先自增,后赋值 不合第二个(其他变量)参与赋值运算,前后自增没有任何区别; 比如:age=20; int nowAge=age++; System.out.println(nowAge);-----这个时候结果是20 int nowAge=++age; System.out.println(nowAge);-----这个时候结果是21 自减 -- 减一 int money=35; money--; System.out.println(money);----这时候结果为34 自减也分前后,规则同自增 补充:快速复制一行 ctrl+alt+方向键上下 快速删除一行ctrl+d 将代码还原成标准格式:shift+ctrl+f 完成的操作是赋值+运算 = 赋值 int age=18; age=age+5;===>age += 5;这两个式子是相等的 -= int money=35;money-=8====>money=money-8; *= int score=30;score*****=2;===>score=score*****2; /= int num1=10;int num2=3; num1/=num2;====>num1=num1/num2; %= 取余数 int aa=10;aa%=3;===>aa=aa%3===>结果为1 练习 123456,取出每一位上的数字 java中整数除以整数=整数,所以123456/10=12345 强调:关系运算符运算的结果为布尔值 ==判断两个值是否相等,值用于基本数据类型,整数、小数、布尔值、字符,不能用于字符串判断 如:int a=10; int b=20; System.out.println(a==b);====>结果为false != 不等于 小于 < 大于> 小于等于<= 大于等于>= 用来连接两个布尔类型结果的运算符,运算结果都是布尔值 true 或者false int score=78; &链接两个布尔值运算时的规则 真&真=真,真&假=假,假&真=假,假&假=假 总结:两边同时为真,结果才为真,一边为假,结果为假 &&短路与 当逻辑表达式,左边为假的时候,右边不在判断,直接的结果,结果为假,可以提高效率 | 或 (一真则真):或者 有一即可 int handsome =300; |或的运算原则:真|真=真;真|假=真;假|真=真;假|假=假 总结:有一个为真就为真,同时为假才为假。 || 短路或 用途 当左边成立,为真时,直接得结果,为真,右边不在计算,提高效率。 ^ 异或 运算规则 真真=假;真假=真;假真=真;假假=假 总结:一真一假 就为真,同真同假都为假 System.out.println(handsome>=200 ^ rich>=1000);====>这个结果是false System.out.println(!(handsome>=500)); || 短路或 [ternary] 三元的 三元运算符 又叫三目运算符 二元运算符 int a=1; 布尔值为true,执行值1,布尔值为false,执行值2 int a=1; 这里的结果是 不奖励 A?B:C;----->这个有3部分,所以就是三元运算符 注意;前面接收的数据类型要和值得类型对应(一致) System 系统 out 输出 println 打印换行,在内容输出后换行 如果输出内容想要换行 使用方法一 System.out.println();---不输出内容,只换行,也可以称作手动换行 System.out.print();-------不可以不输出空内容,必须要有参数 System.out.printf("%.3f",3.2145);表示保留小数点后3位 --"%.3f",会自动四舍五入 上面输出的内容是3.215 Scanner sc=new Scanner(System.in);//System系统in输入 out 输出 如果没有导包,使用快捷键手动导包,ctrl+shift+o 3.1 录入整数 int System.out.println("请输入一个整数"); System.out.println(num1); 3.2 录入小数 默认类型double System.out.println("请输入一个小数:"); 3.3 输入字符串 方式一 1)必须输入有效数据以后才可以停止,输入的空格和回车不会停止输入 System.out.println("请输入字符串:"); 方式二 1)遇到回车就停止录入,输入什么,手机什么,除非遇到换行,停止录入 2)不要和上面的sc.nextInt();sc.nextDouble();sc.next();混用 3)上面三种方式,使用回车结束的时候,会导致nextLine();直接结束,无法录入数据 4)如果非要与上面三种方式混用,在sc.nextLine();上面,再加sc.nextLine();,用来挡掉一次回车 System.out.println("请输入第二个字符串:"); sc.close();算数运算符
赋值运算符
int number=123456;
int ge=number%10;
number /= 10;
int shi=number%10;
number /= 10;
int bai=number %10;
number /= 10;
int qian =number %10;
number /= 10;
int wan =number %10;
number /= 10;
int shiwan =number %10; System.out.println(ge);
System.out.println(shi);
System.out.println(bai);
System.out.println(qian);
System.out.println(wan);
System.out.println(shiwan);
关系运算符
逻辑运算符
System.out.println(score>=60 & score<=100);
int rich =1000;
System.out.println(handsome>=200 | rich>=1000);===>这里结果是true
三元运算符
int b=2;
int sum=a+b;
int b=2;
int sum=a+b;
int score=70;
String res=score>=85?"奖励":"不奖励";
System.out.println(res);java常用的输出方式
从键盘录入数据
int num1=sc.nextInt() //nextInt()下一个整数
double d1=sc.nextDouble();
System.out.println(d1);
2)在有效数据前的所有空格和回车都会自动的去除
3)在有效数据后的空格会阻断录入,将空格后的有效数据丢弃
4)无法录入空内容
String str=sc.next();
System.out.println(str);
String str2=sc.nextLine();
System.out.println(str2);