一、变量
1.
概念:计算机中的一块内存空间,存储数据的基本单元
2.
变量的组成部分:数据类型、变量名、数据
3.
语法:
(1)
先声明,再赋值
数据类型 变量名
; int a;
变量名
=
数据
; a = 5;
(2)
声明的同时赋值:
数据类型 变量名
=
值
;
int b = 8;
(3)
同时定义多个同类型的变量:
数据类型 变量名
1,
数据类型
=
值
,
数据类型
;
package execute;
public class variable{
public static void main(String[]args){
//1.先声明再赋值
int a;//声明
a = 5;//赋值
System.out.println("a="+a);
//2.声明时赋值
int b = 8;
System.out.println("b="+b);
//3.同时定义多个同类型的变量
int c,d=9,e=20,f;
c=1;
f=3;
System.out.println("c="+c);
System.out.println("d="+d);
System.out.println("e="+e);
System.out.println("f="+f);
}
}
二、数据类型
1.
基本数据类型
(
简单数据类型、原始数据类型
)
B
:字节,
Byte 1B = 8b (bit->
位
)
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
...
程序猿节日:
10.24
号
(1)
整数类型
byte 1B -128~127
short 2B -32768~32767
int 4B -2147483648~2147483647
long 8B -922
京
~922
京
-1
long
的字面值后面需要加
L/l(
建议
L
,区分数字1)
(2)
小数类型
float:4B,单精度,字面值后必须加F/f
double:8B,双精度,字面值后面可以D/d,也可以不加
注意
:
java
中的
float
和
double
采用科学计数法的形式进行存储:1.23456792E8
package execute;
class A{
public static void main(String[]args){
float f = 3.9f;
System.out.println(f);
double d = 3.9;//字面值后面可以D/d,也可以不加
System.out.println(d);
float f2 = 12345678.23456789f;
System.out.println(f2);
double d2 = 123456789.123456789;
System.out.println(d2);
float f3=12345678912345678912f;
System.out.println(f3);
}
(3)
字符类型
char
:
2B,
字面值形式如下:
a.
单引号引起来的一个字符:
char c = 'a';
b.
使用整数形式进行存储,范围:
0~65535
c.
转义字符:
'\t'
:水平跳格,
tab
'\n'
:换行
'\' '
:直接打印 单引号
'\" '
:直接打印 双引号
'\\ '
:打印一个反斜杠
package execute;
class A{
public static void main(String[]args){
char c1 = 'A';
char c2 = '中';
char c3 = '9';
char c4 = '-';
System.out.println(c1);
System.out.println(c2);
System.out.println(c3);
System.out.println(c4);
char c5 = 65;
System.out.println(c5);
char c6 = 29233;
char c7 = 20320;
System.out.print(c6);
System.out.print('\t');
System.out.print(c7);
System.out.print('\n');
System.out.print('国');
System.out.print('\'');
System.out.print('你');
boolean bn = true;
System.out.println(bn);
String str = "hello";
String str2 = "爱你,中国";
System.out.println(str);
System.out.println(str2);
}
}
(4)
布尔类型
boolean
:字面值为:
true
和
false
true
代表关系成立
,
真
false
:代表关系不成立,假
注意
:区分
c
语言中的 布尔类型
!!!
思考:
long-8B
和
float-4B
哪一个 存储的数据范围大?
java
中
float
可以采用科学计数法的形式进行存储,float
存储的范围比
long
范围更大。
2.
对象数据类型
/
引用数据
(1)
类、接口、集合、数组等都为对象类型
(2)
以字符串为例讲解 对象类型:
a. String
为字符串,对象类型
b.
字面值:以双引号引起来的一个或是多个字符
String str = "hello";
数据类型总结:实际应用
整数通常使用
int
小数通常使用:
double
字符:开发偶尔用
布尔类型通常用于判断:分支结构、循环结构等
字符串:开发经常使用
案例:写出存储以下数据使用的数据类型:
姓名:
String name = "
李明
"
;
年龄:
int age;
性别:
char sex= '
女
' ;
String sex = "
女
";
// int s = 1; // 1
代表男;
0
代表女
成绩:
double score = 99.5;
电话:
String tel="17710131197";
身份证号码:
String id = "37082819980212204x";
package execute;
class B{
public static void main(String[]args){
String name = "LJQ";
System.out.println("name:"+name);
int age = 18;
System.out.println("age:"+age);
char sex = '女';
System.out.println("sex:"+sex);
double score = 100.0;
System.out.println("score="+score);
String tel = "1575*****32";
System.out.println("tel:"+tel);
String id = "510*************2X";
System.out.println("id:"+id);
String address = "四川省成都市";
System.out.println("address:"+address);
}
}
三、数据类型之间的转换
1.
自动类型提升
2.
强制类型转换
(1)
场景:小数据类型 赋值给 大数据类型
(
存储数据的范围对应数据大小)
(2)
自动提升规则如下:
byte->short->int->long->float->double
char->int->long->float->double
(1)
应用场景:大数据类型 赋值 给 小数据类型时,需要使用强制类型转换
(2)
语法:
源数据类型 变量名
1 =
值
;
目标数据类型 变量名
2 = (
目标数据类型
) 变量名1;
package execute;
class C{
public static void main(String[]args){
byte b = 5;
short s = b;
System.out.println(s);
char c = '爱';
int i = c;
System.out.println(i);
int i2 = 65;
char cs = (char)i2;
System.out.println(cs);
double d3 = 3.9;
int i3 = (int)d3;
System.out.println(i3);
}
}
四、表达式
1.
理解:通常由字面值、变量、运算符组成式子,一般有一个结果
2.
表达式的结果类型规则如下:
(1)
表达式中有
double
,则结果为
double
(2)
表达式中没有
double
,有
float
,则结果为 float
(3)
表达式中没有
double
、
float
,有
long
,结果为long
(4)
其余情况,结果为
int
byte+byte byte+short
short+short
byte+int short+int int+int
五、运算符
+ - *(
乘法
) /(
除法
) %(
取余数
/
取模)
Java
中的
+
两种应用:
(1)加法运算:如果
+
两端都为数值类型,则为加法运算
(2)
字符串的拼接:只要
+
一端为字符串类型,则+就为字符串的拼接
注意
:
java
中布尔类型不能参与 加法运算;但是可以参与字符串拼接
package execute;
class d{
public static void main(String[]args){
int a = 5;
int b = 2;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a%b);
System.out.println(a/b);//2
System.out.println((double)a/b);//2.5
System.out.println(1.0*a/b);//2.5
System.out.println(a/b*1.0);//2.0
String s1 = "hello";
String s2 = "world";
System.out.println(s1+s2);
int m = 2;
int n = 5;
System.out.println(s1+m);
System.out.println(s1+(m+n));
System.out.println(m+n+s1);
System.out.println(s1+(m+n));
//System.out.println(m+true);//报错,布尔不可加法运算
System.out.println(s1+true);//布尔可拼接
System.out.println("m+n="+(m+n));
System.out.println(m+"+"+n+"="+(m+n));
}
}
2.
赋值运算符
= += -= *= /=
int a = 2;
a+=1; //
结果上:
a = a+1;
a*=5; // a=a*5; 3*5 = 15
a-=10 ; // a=a-10;
System.out.println("a="+a);// 3
3.
比较运算符
(
关系运算符
)
>
:大于
>=
:大于等于
<
:小于
<=
:小于等于
==
:等于
!=
:不等于
注意
:被关系运算符连接的表达式称为布尔表达式,关系成立-true
;关系不成立
-false
;结果类型为布尔类型
4.
逻辑运算符
&&
:逻辑与,并且,两端连接的必须都为布尔表达式,两端同时为true
,结果才为
true
。
||
:逻辑或,或者,两端连接的必须都为布尔表达式,只要有一端为true
,结果就为
true
!
:逻辑非,在结果上进行取反
package execute;
class B{
public static void main(String[]args){
int a = 2;
a+=1;
a*=5;
a-=10;
System.out.println("a="+a);//a=5
int x = 3;
int y = 5;
System.out.println(x>y);//false
System.out.println(x<=7);//true
System.out.println(y==5);//true
System.out.println(x!=5);//true
System.out.println(x>3);//false
System.out.println(x>=3);//true
System.out.println(x<y&&y>9);//false
System.out.println(x<y&&y>3);//true
System.out.println(x<y||x>3);//true
System.out.println(!(x<y||x>3));//false
}
}
5.
一元运算符
++(
自增
) --(
自减
)
开发应用如下:
a++
或是
++a
:让
a
变量自身加
1
a--
或是
--a:
让
a
变量自身减
1
以下内容常用于开发面试或是考试:
int c=a++;//
先使用再加
1
int c=++a;//
先加
1
再使用
6.三元运算符
(1)
语法:
布尔表达式
?
表达式
1:
表达式
2
(2)
原理:判断布尔表达式结果是否成立,成立
——true,则执行表达式
1
;否则执行表达式
2
class B{
public static void main(String[]args){
//一元运算符
int a = 3,b,c,d,e;
b = ++a;//b=a+1;-> a=a+1;
c = a++;//c=a;-> a=a+1;
d = a--;//d=a;-> a=a-1;
e = --a;//e=a-1;-> a=a-1;
System.out.println(b);
System.out.println(c);
System.out.println(d);
System.out.println(e);
//分数超过90分则奖励假期一天,分数少于90取消清明假期(三元运算符的应用)
double score = 100.0;
System.out.println((score>90.0)?"奖励假期一天":"取消清明假期");
//交换两个变量的值
int m=12,n=13,k;
k=m;
m=n;
n=k;
System.out.println("m="+m);
System.out.println("n="+n);
//输出一个整数个十,百,位上的数
int v=123,u,p,r;
u=v%10;
p=v/10%10;
r=v/100;
System.out.println("个位为:"+u);
System.out.println("十位为:"+p);
System.out.println("百位为:"+r);
}
}
六、扫描议(Scanner)
1.
作用:实现人机交互
2.
使用步骤:
(1)
导包:
import
包名
1.
包名
2.
类名;//导入某一个类
import
包名
1.
包名
2.*
;
//
导入包中所有类
注意
:定义在
pacakge
语句的后面,所有类的上面;
一个源文件中可以定义多行
import
语句
import java.util.Scanner;
(2)
创建
Scanner
对象:
Scanner sc = newScanner(System.in);
(3)
使用:
int n = sc.nextInt();//
输入一个整数
double s = sc.nextDouble();//
输入一个小数
String str = sc.next();//
输入一个字符串
char c = sc.next().charAt(0);//
输入一个字符
package execute;
import java.util.Scanner;
import java.io.*;
class A{
public static void main(String[]args){
Scanner sc = new Scanner(System.in);
//使用
System.out.println("请输入一个整数");
int n=sc.nextInt();
System.out.println("n="+n);
System.out.println("请输入一个小数");
double d= sc.nextDouble();
System.out.println("请输入一个字符串:");
String str = sc.next();
System.out.println("str="+str);
System.out.println("请输入一个字符");
char c = sc.next().charAt(0);
System.out.println("c="+c);
}
}