java jpa 非必传 java非基本数据类型

admin2024-06-11  9

Java语言基础

变量

变量的概念

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

变量的定义方式
  1. 先声明,再赋值(常用)
    数据类型 变量名;int i;
    变量名=值;i = 100;
  2. 声明并赋值(常用)
    数据类型 变量名=值;
    int i = 100;
  3. 多个同类型变量的声明与赋值
    数据类型 变量1,变量2=值,变量3;
    int i,j=100,k;
    (java是强类型语言,变量的类型必须与数据的类型一致)
注意事项
  1. 变量需要先赋值在使用
  2. 在同一个作用域,变量名不能重名
  3. 注意取值范围不要出现越界问题( byte范围:-128~127 byte c = 300;—越界 )

数据类型

  1. 作用:用于约束所存储数值的范围
  2. 数据类型分类
  • 基本数据类型:byte short int long float double boolean char
  • 引用数据类型:String(常用-存字符串)
基本数据类型
  • 整数 (int 为整数的默认类型,如需要long类型赋值较大整数时,需在后面追加L)

java jpa 非必传 java非基本数据类型,java jpa 非必传 java非基本数据类型_java jpa 非必传,第1张

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

java jpa 非必传 java非基本数据类型,java jpa 非必传 java非基本数据类型_赋值_02,第2张

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

java jpa 非必传 java非基本数据类型,java jpa 非必传 java非基本数据类型_java_03,第3张

  • 字符
    Unicode中每个字符都对应一个二进制数,可以使用多种方式赋值
  • 字符赋值:char c = ‘A’;(通过’'为字符赋值)
  • 整数赋值:char b= 65;(通过十进制数65在字符集中对应的字符赋值)
  • 进制赋值:char a = ‘\u0041’;(通过十六进制数41在字符集中对应的字符赋值)

java jpa 非必传 java非基本数据类型,java jpa 非必传 java非基本数据类型_java jpa 非必传_04,第4张

引用数据类型
  • String

java jpa 非必传 java非基本数据类型,java jpa 非必传 java非基本数据类型_System_05,第5张

转义字符

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

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

数据间的类型转换

自动类型转换
  1. 两种类型相互兼容
  2. 目标取值范围大于原类型
/* 数据类型的自动转换 
		   数据间的类型兼容 目标数据类型范围大于源数据类型
		*/
		// 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. 两种类型相互兼容
  2. 目标类型范围小于原类型
/* 数据类型的强制转换 
		   数据间的类型兼容 源数据类型范围大于目标数据类型
		*/
		// 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—效率高

java jpa 非必传 java非基本数据类型,java jpa 非必传 java非基本数据类型_java jpa 非必传_06,第6张

/* 逻辑运算符 && || ! 对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: 算术表达式:算术运算符参与运算的式子

自动类型提升

  1. 进行算术运算时:
  • 两个操作数有一个为double,结果提升为double
  • 操作数中没有double,有float,结果提升为float
  • 操作数中没有float,有long,结果提升为long
  • 操作数中没有long,有int,结果提升为int
  • 操作数中没有int,均为byte或short,结果提升为int
  1. 特殊:任何类型与String相加(+)实为拼接,结果自动提升为String。

控制台输入

导包语法

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

语法顺序
  1. 导包:import java.util.Scanner;
  2. 声明变量:Scanner input = new Scanner(System.in);
  3. 使用Scanner中方法
  • .nextInt() //获得整数
  • .nextDouble() //获得小数
  • .next() //获得字符串
  • .next().charAt(0) //获得单个字符


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明原文出处。如若内容造成侵权/违法违规/事实不符,请联系SD编程学习网:675289112@qq.com进行投诉反馈,一经查实,立即删除!