栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java学习笔记--数据类型和运算符

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java学习笔记--数据类型和运算符

笔记大纲预览
  • JAVA学习
    • java的一些数据类型和运算符
      • 数据类型
        • 整型变量/常量
        • 浮点型变量/常量
        • 字符型变量/常量
        • 布尔型变量/常量
      • 运算符(operator)
        • 算数运算符
        • 赋值及其扩展赋值运算符
        • 关系运算符
        • 逻辑运算符
        • 位运算符
        • 字符串连接符
        • 条件运算符(三元运算符)
        • 运算符的优先级问题
      • 类型转化
        • 自动类型转换
        • 强制类型转换
        • 转化中常见的问题
      • 使用Scanner获取键盘输入

JAVA学习

这是一篇自己目前学习java的一些笔记,主要就是根据尚学堂的java300集写的一些笔记。希望能给大家带来一些帮助,也是为了鞭策自己每天努力学习。有不对的地方希望提出然后更正。

java的一些数据类型和运算符 数据类型

java中定义了3类8中基本数据类型

  • 数值型: byte(1字节)、short(2字节)、int(4字节)、long(8字节)、float(4字节)、double(8字节)
  • 字符型:char(2字节)
  • 布尔型:boolean(1位)

数据类型分为:基本数据类型:数值型,字符型,布尔型-

​ 引用数据类型(用来引用对象,4个字节):类(class),接口(interface),数组

整型变量/常量

含有:byte,short,int,long四类

long a = 7400000000L; 后面加L代表这是一个Long类型的常量

八进制:0开头,如:015

十六进制:0x开头 如0x15

二进制:以0b开头 如:0b01110011

浮点型变量/常量

含有:float(单精度,精确到7个有效数字)

​ double(双精度)

java浮点类型常量有两种表示形式

  • 十进制数形式 例如:3.14 314.0 0.314
  • 科学记数法形式 例如 : 314e2 (e2代表10的2次方,即314x100) 314E-2 (即314x10的-2次方)

使用科学记数法赋值:

double f = 314e2;  //即314*10^2 
double f = 314e-2;	//即314*10^-2 ---->3.14

float类型的数值要加后缀F,不加就默认为double类型的数值,在数值后加D可明确为double类型

float f = 3.14F;
double d1 = 3.14;
double d2 = 3.14D;

浮点数是不精确的,一定不要用于比较

例1:

float f =0.1f;
double d = 1.0/10;
System.out,println(f==d);
//代码的运行结果会输出false

例2:

float d1 = 423432423f;
float d2 = d1+1;
if(d1==d2){
    System.out.println("d1=d2");
}else{
    
    
    System.out.println("d1!=d2");
}
//代码运行的结果会是“d1=d2”

想要比较浮点数,建议使用java.math包下面的两个类:BigInteger和BigDecimal,这两个类可以处理任意长度的数值。BigInteger实现了任意精度的整数运算,BigDecimal实现了任意精度的浮点运算

示例:使用Bigdecimal进行浮点数的比较:

import java.math.BigDecimal;
public class Main{
	public static void main(String[] args){
		BigDecimal bd = BigDecimal.valueOf(1.0);
		bd = bd.subtract(BigDecimal.valueOf(0.1));	 //bd减0.1
		bd = bd.subtract(BigDecimal.valueOf(0.1));
		bd = bd.subtract(BigDecimal.valueOf(0.1));
		bd = bd.subtract(BigDecimal.valueOf(0.1));
		bd = bd.subtract(BigDecimal.valueOf(0.1));
		System.out.println(bd); //0.5
		System.out.println(1.0 - 0.1 - 0.1 - 0.1 - 0.1 - 0.1); //0.5000000000000001
        BigDecimal bd2 = BigDecimal.valueOf(0.1);
		BigDecimal bd3 = BigDecimal.valueOf(1.0/10.0);
		System.out.println(bd2.equals(bd3));	 //会返回true
	}
}
字符型变量/常量

char类型用来表示在Unicode编码表中的字符,共65536个字符,即十六进制表示是从’u0000’到’uFFFF’,占2个字节,用单引号表示,如:‘A’

例:

char a = 'A';
char b = '中';
char c = 'u0061';

常见的 一些转义字符:

转义符含义Unicode值
b退格(backspace)u0008
n换行u000a
r回车u000d
t制表符(tab)u0009
反斜杠u005c
单引号u0027
"双引号u0022
布尔型变量/常量

boolean类型只有两个常量值,即true和false,在内存中占一位,不可以使用0或非0 常数代替true和false,常用来判断逻辑条件。

例:

boolean flag;
flag = true;
if(flag){
    \true的分支
}else{
    \false的分支
}
运算符(operator)

运算符大概分为:算术运算符,赋值运算符,扩展运算符,关系运算符,逻辑运算符,位运算符,条件运算符,字符串运算符等。

算数运算符
  • 二元运算符: +,-,*,/,%

    ​ 二元运算符需要两个操作数完成运算

    二元运算符运算规则:

    整数运算:

    1. 两个操作数一个为long,则结果也为long
    2. 没有long时,结果为int

    浮点运算:

    1. 两个操作数有一个为double,则结果为double
    2. 只有两个操作数都为float,结果才为float

    取模运算

    1. 操作数可为浮点数,一般为证书,结果为“余数”,“余数”的符号和左边的操作数符号相同,如:7%3=1,-7%3=-1,7%-3=1.
  • 一元运算符:++,–

    该运算符只需要一个操作数即可运算。

赋值及其扩展赋值运算符

常见的扩展赋值运算符:+=,-=,·*=,/=,%=

例:

int a = 3;
int b = 4;
a+=b; //相当于a=a+b
a*=b+3; //相当于a=a*(b+3)
关系运算符

关系运算符用来比较运算,关系运算的结果是布尔值:即true和false

常见关系运算符:==,!=,>,<,>=,<=

逻辑运算符

常见逻辑运算符:

运算符说明
逻辑与:&两个操作数都为true,结果为true
逻辑或: |两个操作数有一个为true,则结果为true
短路与:&&只要有一个为false,则直接返回false
短路或:||只要有一个为true,则直接返回true
逻辑非:!取反,例:!true为false
逻辑异或:^相同为false,不同为true

在实际使用的时候,通常使用&&和||,而不是&和|,因为这样会提高效率

位运算符
位运算符说明
~取反
&按位与(与:遇0则0)
|按位或(或:遇1则1)
^按位异或(异或:相同为0,不同为1)
<<左移运算符,左移一位相当于乘2
>>右移运算符,右移一位相当于除2取商
字符串连接符

字符串连接符即 +

例:

String a = "123";
String b = "456";
System.out.println(a+b);
//结果为123456
条件运算符(三元运算符)

语法格式:

x?y:z

其中x为boolean类型的表达式,先计算x的值,若x的值为true,则整个运算的结果为表达式y的值,否则为z的值

例:

int score = 80;
String score<60?"不及格":"及格";
//80>60,结果string的值是及格
int x = 1;
System.out.println(x>0?1:(x==0?0:-1));
//因为x=1>0,所以结果输出1
//若x=0,输出0
//若x=-100,输出-1
运算符的优先级问题

  • 表达式里面优先使用小括号组织
  • 逻辑非>逻辑与>逻辑或
类型转化
自动类型转换

自动类型转化指的是容量小(范围大小)的数据类型可以自动转化为容量大的数据类型。

自动转换按从低到高的顺序转换。不同类型数据间的优先关系如下:

低--------------------------------------------->高
byte,short,char-> int -> long -> float -> double

int 和long类型向float类型转化,long向double类型转化,会有精度损失

强制类型转换

语法格式

(目标数据类型)x

示例:

double x= 3.14;
int nx = (int)x;
//此时nx的值就变为了3
转化中常见的问题

注意:

  • 操作数比较大的时候要注意是否溢出
  • 尽量不要命名名字为l的变量,l和数字1容易混淆,long类型尽量使用大写L
使用Scanner获取键盘输入
import java.util.Scanner;

Scanner scanner = new Scanner(System.in);
String name = scanner.nextLine();
String favor = scanner.nextLine();
int age = scanner.nextInt();
接下来的内容会随着自己的学习进行更新。加油,奥力给!!!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/328924.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号