java第一阶段-JavaSE-Day03-数据类型、数据类型的转换及运算符

一.字符类型

(一)字符类型变量的赋值方式

1.通过' '形式赋值

例:char c = 'A';

2.通过ASCII码值赋值

例:char c = 65;

常用的ASCII码值

'A'--65,'a'--97,'0'--48

3.通过unicode编码赋值

例:char c = '\u0041';

public class Demo{ public static void main(String[] args){ char c1 = 'A'; System.out.println(c1); //使用ASCII码给字符变量赋值 char c2 = 97; System.out.println(c2); //使用Unicode编码赋值 char c3 = '\u0041'; System.out.println(c3); } }

结果:

A

a

A

二.数据类型

(一)引用类型数据其实有无穷个,有一些是jdk中定义好的,而我们还可以自定义引用类型。

(二)String类

String 类是字符串,在定义String类型的变量的时候,使用" "括起来表示字符串常量的内容。

public class Demo { public static void main(String[] args){ String s1 = "HelloWorld"; System.out.println(s1); } }

输出结果:HelloWorld

三.基本数据类型转换

(一)基本数据类型转换概念

转换原因:java是强类型语言,数据类型之间不能随意转换,但运算时数据类型不匹配,所以需要转换。

(二)数据类型转换分类

自动类型提升:程序自动完成

强制类型转换:需要写一定的格式完成

(三)自动类型提升(隐式类型转换)

1.概念

能存数值数据:范围小的数据类型可以直接转换为范围大的数据类型;小范围类型可以直接给大范围类型赋值。

2.数据类型范围大小排序

3.注意事项

int类型以及int以上数据类型做运算的时候提升为int,int以上计算提升为较大类型

byte a;byte b; a+b----->结果提升为int类型

int a;long b; a+b------>结果提升为long类型

4.案例

public class Demo { 
        public static void main(String[] args){ 
            //int及int以上做运算,自动提升为int类型 
            byte a = 10; byte b = 20; 
            //byte c = a + b; 编译报错,a+b提升为int类型 
            int c = a + b; 
            System.out.println(c); 
            int d = a;
            //小类型可以给大类型赋值 
            long i1 = 1000L; 
            float f = i1;
            //float类型比long类型范围大 
            float f1 = i1 + f;
            //自动提升为float类型 
            System.out.println(f1); 
         } 
}

(四)强制类型转换(显示转换类型)

1.概念

大范围数据类型的变量/常量 赋值给一个小范围数据类型的变量,需要进行强制转换。

2.格式

目标数据类型 变量名 = (目标数据类型)原数据类型变量名/原常量值;

long a = 100;

int b = (int)a;

bate c = (byte)200;

3.注意事项

·强制类型转换可能会损失精度,得到错误的数据;

·小数类型强制转换为整数类型时,直接舍去小数部分,保留整数部分。

4.案例

public class TypeDown_04 {
	public static void main(String[] args) {
		long a = 1000;
		int b = (int)a;
		System.out.println(b);
		int c = 200;
		byte d = (byte)c;
		System.out.println(d);
		float e = 3.14F;
		int f = (int)e;
		System.out.println(f);
	}
}

(五)常量优化机制

·概述

在编译时,整数常量参与运算的式子,会提前计算出结果,并且自动判断该结果是否在该数据类型取值范围内。

四.运算符

(一)运算符概述

1.运算符概念

对常量或者变量进行操作的符号,通常用于数据的比较或运算

2.举例

1)10+20中,+是运算符中的算数运算符

2)销售产品,验证库存量>=购买数量,>=是比较运算符

3.运算符分类

算术运算符、赋值运算符、比较运算符、逻辑运算符、位移运算符、三元运算符

(二)算术运算符

1.算术运算符概念

对常量或变量进行算数运算的符号

2.表达式概念

有常量、变量、运算符组成符合java语法的式子就成为表达式,表达式都有结果,结果就是表达式的值

根据表达式的值,对表达式也有不同的叫法

例如:表达式值是整型,就叫整型表达式;表达式值是布尔类型,就叫布尔表达式

3.举例

double price = 22.9;

int count = 2;

double total = price * count;

算术运算符

加减乘除都是最基本的,重点讲一下%取余、++自增、--自减。

1.%取余(取模)运算

1)两数相除,获取余数

特殊情况:取余结果的符号之和%前面的操作数的符号有关

2)作用:获取余数,判断是否整除,判断奇偶,获取各个为数字等等,通常用作数据的筛选。

例:

public class Demo{ public static void main(String[] args){ int b = 345 / 100; int s = 345 % 100 / 10; int g = 345 % 10; System.out.println("百位数:"+b+",十位数:"+s+",个位数:"+g); } }

2.++,--运算,只能操作变量

1)++:自增运算符,表示每次让变量值+1;

2)--:自减运算符,表示每次让变量值-1;

3)++,--运算符的使用(以++为例,--相同的用法)

(1)自增运算符既可以卸载变量前边,也可以写在变量后面

(2)当a++和++a作为一个单独的语句存在时,没有任何的区别,都表示自增,都可以把a加1

(3)当a++和++a作为一个表达式一部分存在时,表示的数值是有区别的:

·a++先获取a的值,当做表达式的值,再自增

·++a先自增,然后再获取a的值,当做表达式的值

int b = 3; System.out.println(++b); int c = 3; System.out.println(c++); System.out.println(c);

输出结果:4

3

4

(三)赋值运算符

1.基本算术运算符:= 赋值功能

2.扩展赋值运算符:+=、-=、*=、/=、%=

格式:

变量名称 += 表达式 等于 变量名 = (变量类型)(变量名+表达式);(-=、*=、/=、%=的格式同上)

public class AssignOperator { public static void main(String[] args) { int a = 10; a += 3; System.out.println(a); int b = 10; b -= 3; System.out.println(b); int c = 5; c *= 3; System.out.println(c); int x = 6; x /= 2; System.out.println(x); int y = 5; y %= 3; System.out.println(y); byte m = 20; //m = (byte)(m - 3); m -= 3; System.out.println(m); } }

(四)比较运算符

1.用于比较是否相等和大小关系的符号,计算结果为boolean,关系运算符连接表达式都是布尔表达式

2.使用格式

表达式1 == 表达式2 相等是true,否则false

(五)逻辑运算符

1.用于连接逻辑数据(true和false)的运算符,只能运算boolean类型的数据,运算结果为boolean。逻辑运算符连接的式子也叫布尔表达式

2.逻辑与:&(并且,同时,要求多个天剑同时成立的场景下使用)

例:

1 > 3 & 4 > 3 结果是false;

1 < 3 & 4>3 结果是true;

两边同时都为true时,结果才为true,否则为false

3.逻辑或:|(或者)

基本用法:

true | true 结果为true;

true | false 结果为true;

false | true 结果为true;

false | false 结果为 false;

4.逻辑异或:^

基本语法:

true | true 结果为false;

true | false 结果为true;

false | true 结果为true;

false | false 结果为 false;

相同为加,不同为真

5.逻辑非:!

基本语法:

!true 结果为false

! false 结果为true

6.短路逻辑与:&&

基本语法:

true && true 结果为true;

true && false 结果为false;

false && true 结果为false;

false && false 结果为 false;

用法与&相同,不同的是,左边表达式1计算为假时则不计算右边的表达式。更高效

7.短路逻辑或:||

基本语法:

true || true 结果为true;

true || false 结果为true;

false || true 结果为true;

false || false 结果为 false;

用法与|相同,不同的是,左边表达式1计算为真时则不计算右边的表达式。更高效

(六)三元运算(重要)

1.元的概念:运算符可以操作的数据或者表达式

2.三元运算符:别名三目运算符,同时可以操作三个数据或者表达式的运算符

3.格式:

表达式1 ? 表达式2 : 表达式3;

4.说明

1)表达式1必须是boolean类型的表达式,计算结果只能是true或false

2)表达式2和表达式3可以使任意类型的表达式

5.运算流程

1)计算表达式1的值,要么是true,要么是false;

2)如果表达式1的结果为true,就选择表达式2作为三元表达式的计算结果

3)如果表达式1的结果为false,就选择表达式3作为三元表达式的计算结果

public class HomeWork3 {
	public static void main(String[] args) {
		//求出两个数的最小值
		//定义两个变量a和b,分别赋值5,9
		int a = 5,b = 9;
		//通过三元运算符判断大小,并定义一个变量min接收结果
		int min = a > b ? b : a;
		//打印最小值
		System.out.println(min);
	}
}

输出结果:5

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

皇正经

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值