java语言基础笔记基本数据类型 与或非

tech2022-07-16  151

Java语言基础

变量

变量的概念

计算机内存中的一块存储空间,是存储数据的基本单元用于存储在程序执行中的数据

变量的定义方式

先声明,再赋值(常用)

数据类型 变量名;int i;

变量名=值;i = 100;

声明并赋值(常用)

数据类型 变量名=值;

int i = 100;

多个同类型变量的声明与赋值

数据类型 变量1,变量2=值,变量3;

int i,j=100,k;

(java是强类型语言,变量的类型必须与数据的类型一致)

注意事项

变量需要先赋值在使用在同一个作用域,变量名不能重名注意取值范围不要出现越界问题( byte范围:-128~127 byte c = 300;—越界 )

数据类型

作用:用于约束所存储数值的范围数据类型分类 基本数据类型:byte short int long float double boolean char引用数据类型:String(常用-存字符串)

基本数据类型

整数 (int 为整数的默认类型,如需要long类型赋值较大整数时,需在后面追加L)

小数/浮点数**(double 为浮点数的默认类型,如需要float类型赋值时,需在后面追加F)**

布尔

可直接赋值true/false可赋值一个结果为true/false的表达式布尔不能参与算数运算

字符

Unicode中每个字符都对应一个二进制数,可以使用多种方式赋值

字符赋值:char c = ‘A’;(通过’'为字符赋值)整数赋值:char b= 65;(通过十进制数65在字符集中对应的字符赋值)进制赋值:char a = ‘\u0041’;(通过十六进制数41在字符集中对应的字符赋值)

引用数据类型

String

转义字符

Java通过转义字符来解决特殊字符的输出

\n:换行\t:水平制表\’:输出一个单引号\":输出一个双引号\\:输出一个\ class ZhuangYi{ public static void main(String[] args){ /*转义字符: \n \t \' \" \\ */ System.out.print("姓名: \n"); System.out.println("年\'龄:20;\t\"爱好\":睡\\觉"); //姓名: //年'龄:20; "爱好":睡\觉 } }

数据间的类型转换

自动类型转换

两种类型相互兼容目标取值范围大于原类型 /* 数据类型的自动转换 数据间的类型兼容 目标数据类型范围大于源数据类型 */ // 1.整数整数间的转换 byte b = 30; short s = b; // 2.整数与浮点数间的转换 double d = s; // 3.整数与字符间的转换 char c = 'C'; int i = c; System.out.println("自动类型转换:"); System.out.println(s); //30 System.out.println(d); //30.0 System.out.println(i); //67

强制类型转换

两种类型相互兼容目标类型范围小于原类型 /* 数据类型的强制转换 数据间的类型兼容 源数据类型范围大于目标数据类型 */ // 1.整数整数间的转换 int i2 = 178; byte b2 = (byte)i2; // 2.整数与浮点数间的转换 double d2 = 100.02; int i3 = (int)d2; // 3.整数与字符间的转换 int i4 = 99; char c2 = (char)i4; System.out.println("强制类型转换:"); System.out.println(b2); //-79 符号位变化,为负数 System.out.println(i3); //100 System.out.println(c2); //c

强制类型转换规则

整数长度足够,数据完整

int i = 100;byte b = (byte) i; //b=100

整数长度不够,数据截断

int i = 10000;byte b = (byte) i; //b=16(符号位变化,可能为负数)

小数转整数,数据截断

double d =2.5; int i =(int)d; //i =2(小数位舍弃)

字符整数互转,数据完整

char c = 65; int i = c; //i =65

Boolean 取值为true/false,不可与其他类型转换

运算符

算数运算符

+ - * / % ++ --(重点)

注意: 整数相除,取整;有一边为小数,结果为小数,有小数则为double型

​ 5.0/2=2.5(输出结果为double型)

​ 5/2=2(输出结果为int型)

​ a++: 后置自增:先计算表达式的值;变量值后+1(后自增,先用再增)

​ **++a:前置自增:**变量值先+1,;再计算表达式的值(前自增,先增再用)

​ a–:后置自减:先计算表达式的值;变量值后-1 (后自减,先用再减)

​ –a:前置自减:变量值先-1,;再计算表达式的值(前自减,先减再用)

int a=10,b=2; /* 算数运算符 + - * /% */ System.out.println("--------------"); System.out.println(a+b); //12 System.out.println(a-b); //8 System.out.println(a*b); //20 System.out.println(a/b); //5 System.out.println(a%b); //0 /* 一元运算符 ++ --*/ // i++ 先使用i 再进行+1操作 // ++i 先进行+1操作 再使用i System.out.println("--------------"); System.out.println(a++); //10 System.out.println(b--); //2 System.out.println(++a); //12 System.out.println(--b); //0

赋值运算符

*=直接赋值 +=求和后赋值 -=求差后赋值 =求积后赋值 /=求商后赋值 %=求余后赋值

/* 赋值运算符 += -= *= /= %= = */ int c =2; int d =0; d+=3; int e =0; e-=3; int f =0; f*=3; int g =0; g/=3; int h =1; h%=3; int i =0; i=3; System.out.println("--------------"); System.out.println(d); //3 System.out.println(e); //-3 System.out.println(f); //0 System.out.println(g); //0 System.out.println(h); //1 System.out.println(i); //3

关系运算符

>大于 <小于 ==等于 >=大于等于 <=小于等于 !=不等于

运算后得到的是一个Boolean值

/* 关系运算符 > < == >= <= !=*/ // 返回值为boolean类型 int j=1,k=2; System.out.println("--------------"); System.out.println(j<k); //true System.out.println(j>k); //false System.out.println(j==k); //false System.out.println(j>=k); //false System.out.println(j<=k); //true System.out.println(j!=k); //true

逻辑运算符

&&与 ||或 !非

逻辑与& VS 短路与&&

逻辑与:当操作数1为false时,仍然会执行操作数2

短路与:当操作数1为false时,不会执行操作数2—效率高

逻辑或| VS 短路或||

逻辑或: 当操作数1为true时,仍然会执行操作数2

短路或: 当操作数1为true时,不会执行操作数2—效率高

/* 逻辑运算符 && || ! 对boolean 类型的数据进行运算 得到的结果也是boolean类型的*/ int l=10,m=20; // && 与 一假即假 System.out.println("--------------"); System.out.println(l<m&&m>l); //true System.out.println(l>m&&m>l); //false // || 或 一真即真 System.out.println(l<m||m>l); //true System.out.println(l>m||m>l); //true System.out.println(l>m||m<l); //false // ! 非 真假颠倒 // 操作对象是boolean类型. 所以表达式需要用括号包裹 System.out.println(!(l>m)&&m>l); //true System.out.println(!(l>m)||m<l); //true

三目运算符

语法:数据类型 变量名 = boolean表达式?结果一:结果二

/** 三元运算符 */ class YunSF2{ public static void main(String[] args){ /* 语法 数据类型 变量名 = boolean表达式?结果一:结果二*/ int grade = 89; int grade2 = 60; String s = grade>=80?"送一层楼":"送练习题"; String s2 = grade2>=80?"送一层楼":"送练习题"; double d = grade>=80?2:2.2; System.out.println(s); //送一层楼 System.out.println(s2); //送练习题 System.out.println(d); //2.0 } }

优先级

()>算数运算符>关系运算符>逻辑运算符>赋值运算符

表达式

使用运算符连接的变量或字面值,并得到一个结果

int a = 5 + 6; // 5+6: 算术表达式:算术运算符参与运算的式子

自动类型提升

进行算术运算时:

两个操作数有一个为double,结果提升为double操作数中没有double,有float,结果提升为float操作数中没有float,有long,结果提升为long操作数中没有long,有int,结果提升为int操作数中没有int,均为byte或short,结果提升为int

特殊:任何类型与String相加(+)实为拼接,结果自动提升为String。

控制台输入

导包语法

import 包名.类名 //将外部class文件的功能引入到自身文件中

语法顺序

导包:import java.util.Scanner;声明变量:Scanner input = new Scanner(System.in);使用Scanner中方法 .nextInt() //获得整数.nextDouble() //获得小数.next() //获得字符串.next().charAt(0) //获得单个字符
最新回复(0)