JAVA

创建一个项目的三个步骤

1.创建一个项目[工程 ] java project

  1. 创建包package【包名:公司域名的倒置】
  2. 创建类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,会自动类型提升

字符串链接”成都“+”双流“=”成都双流“

  • String str1="成都";
  • String str2="双流";
  • String string=str1+str2;
  • System.out.println(string);

++ 自增 每次自动加一

  • 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;

  • += int age =age+5;

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 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);

关系运算符

强调:关系运算符运算的结果为布尔值

==判断两个值是否相等,值用于基本数据类型,整数、小数、布尔值、字符,不能用于字符串判断

如:int a=10;

​ int b=20;

System.out.println(a==b);====>结果为false

!= 不等于

小于 <

大于>

小于等于<=

大于等于>=

逻辑运算符

用来连接两个布尔类型结果的运算符,运算结果都是布尔值 true 或者false

  • & 与(一假则假):同时 并且

int score=78;
System.out.println(score>=60 & score<=100);

&链接两个布尔值运算时的规则

真&真=真,真&假=假,假&真=假,假&假=假

总结:两边同时为真,结果才为真,一边为假,结果为假

  • &&短路与 当逻辑表达式,左边为假的时候,右边不在判断,直接的结果,结果为假,可以提高效率

  • | 或 (一真则真):或者 有一即可

​ int handsome =300;
​ int rich =1000;
​ System.out.println(handsome>=200 | rich>=1000);===>这里结果是true

|或的运算原则:真|真=真;真|假=真;假|真=真;假|假=假 总结:有一个为真就为真,同时为假才为假。

  • || 短路或 用途 当左边成立,为真时,直接得结果,为真,右边不在计算,提高效率。

  • ^ 异或 运算规则 真真=假;真假=真;假真=真;假假=假 总结:一真一假 就为真,同真同假都为假

System.out.println(handsome>=200 ^ rich>=1000);====>这个结果是false

  • ! 非 不是 !布尔值 !true=false !false=true 非真即假,非假即真

System.out.println(!(handsome>=500));

|| 短路或

三元运算符

[ternary] 三元的

  • 三元运算符 又叫三目运算符

  • 二元运算符

​ int a=1;
​ int b=2;
​ int sum=a+b;

  • 三元运算符格式:数据类型 变量名=布尔值?值1:值2;

布尔值为true,执行值1,布尔值为false,执行值2

​ int a=1;
​ int b=2;
​ int sum=a+b;
​ int score=70;
​ String res=score>=85?"奖励":"不奖励";
​ System.out.println(res);

这里的结果是 不奖励

A?B:C;----->这个有3部分,所以就是三元运算符

注意;前面接收的数据类型要和值得类型对应(一致)

java常用的输出方式

  • 方法一 System.out.println() 输出内容并换行 快捷键 syso sout

System 系统 out 输出 println 打印换行,在内容输出后换行

  • 方法二 System.out.print()输出内容不换行

如果输出内容想要换行 使用方法一

System.out.println();---不输出内容,只换行,也可以称作手动换行

System.out.print();-------不可以不输出空内容,必须要有参数

  • 方法三 System.out.printf(参数1:格式,参数2:数字);--格式化输出

System.out.printf("%.3f",3.2145);表示保留小数点后3位 --"%.3f",会自动四舍五入

上面输出的内容是3.215

从键盘录入数据

  • 1.创建一个扫描器

Scanner sc=new Scanner(System.in);//System系统in输入 out 输出

  • 2.导包 到扫描器的依赖import java.util.Scanner,eclipse会自动导包

如果没有导包,使用快捷键手动导包,ctrl+shift+o

  • 3.通过扫描器对象录入数据

3.1 录入整数 int

System.out.println("请输入一个整数");
int num1=sc.nextInt() //nextInt()下一个整数

System.out.println(num1);

3.2 录入小数 默认类型double

System.out.println("请输入一个小数:");
double d1=sc.nextDouble();
System.out.println(d1);

3.3 输入字符串

方式一

1)必须输入有效数据以后才可以停止,输入的空格和回车不会停止输入
2)在有效数据前的所有空格和回车都会自动的去除
3)在有效数据后的空格会阻断录入,将空格后的有效数据丢弃
4)无法录入空内容

System.out.println("请输入字符串:");
String str=sc.next();
System.out.println(str);

方式二

1)遇到回车就停止录入,输入什么,手机什么,除非遇到换行,停止录入

2)不要和上面的sc.nextInt();sc.nextDouble();sc.next();混用

3)上面三种方式,使用回车结束的时候,会导致nextLine();直接结束,无法录入数据

4)如果非要与上面三种方式混用,在sc.nextLine();上面,再加sc.nextLine();,用来挡掉一次回车

​ System.out.println("请输入第二个字符串:");
​ String str2=sc.nextLine();
​ System.out.println(str2);

  • 4.当数据输入录入完毕后,在程序的最后,关闭扫描器

sc.close();

你可能感兴趣的:(JAVA)