Java数据类型

Java数据类型

整数

long

long类型后必须加L(注意Long不是long)

long num = 10L;

long是基本的数据类型;Long是封装引用

小数(浮点数)

float

float类型后面一定要加f(大小写都行)

float num = 1.1f;

最好完全避免使用浮点数进行比较大小,因为会四舍五入变成一个约等于的数,用来比较大小不精确。

Long

long = num = 1.1L//数字后面尽量用大写L,小写的看起来像数字一

字符

char

表示一个字符,不能表示字符串(即多个字符)

char name = 'a';

字符串

String

是一个类,不是关键字

String name = "Mike";//"S"为大写 

布尔值

boolean

表示是非,只有true和false两个值

boolean flag = true;
boolean flag1 = false;

数据类型转换

强制转换 (类型)变量名

int i = 128;
byte b = (byte)i;//byte 是 -128~127 数据太大了会溢出
System.out.println(i);//128
System.out.println(b);//-128

自动转换 低–高

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

int i = 128;
double b = i;

注意点:

  1. 不能对布尔值进行转换

  2. 不能把对象类型转换为不相干的类型

  3. 在把高容量转换到低容量的时候,使用强制转换(比如double转换到int要使用强制转换)

  4. 转换的时候可能存在内存溢出,或者精度问题!

    System.out.println((int)23.7);//23
    System.out.println((int)-45.9);//-45
    

数据溢出

//操作比较大的数的时候,注意溢出问题
//JDK7新特性,数字之间可以用下划线分割
int money = 10_0000_0000;//10亿,int类型最多存放21亿多
int year = 20;
int total = money*year;//-1474836480,计算的时候溢出了
long total2 = money*year;//默认是int,转换之前已经存在问题了,结果和上面一样
long total3 = money*((long)year);//先把一个数转换为Long
System.out.println(total3);//输出正确

变量

类变量

实例变量

局部变量

public class Demo08 {

    //类变量 static;从属于类,和类一起出现和消失
    static double salary = 2500;

    //属性:变量

    //实例变量:从属于对象;如果不自行初始化,这个类型为默认值
    //布尔值:默认是false
    //除了基本类型,其余的默认值都是null
    String name;
    int age;

    //main方法
    public static void main(String[] args) {
        //局部变量:必须声明和初始化值,只在该方法内有用
        int i = 10;
        System.out.println(i);

        //变量类型 变量名  值为"new Demo08()"
        Demo08 demo08 = new Demo08();//new Demo()后加上".var"可以快速打出来;alt+回车键也能打出来
        System.out.println(demo08.age);//0
        System.out.println(demo08.name);//null

        //类变量
        System.out.println(salary);
    }

    //其他方法
    public void add()
    {
        //System.out.println(i);
    }
}

常量

public class Demo09 {

    //常量final,常量名一般使用大写字母表示
    //final是修饰符,不存在先后顺序
    static final double PI = 3.14;

    public static void main(String[] args) {
        System.out.println(PI);
    }
}

变量的命名规范

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aKQZuKaI-1612368272353)(F:\ruanjian\Intellij IDEA\截图\变量的命名规范.png)]

基本运算符 优先级使用()

二元运算符

package operator;//这句话不能删

public class Demo01 {
    public static void main(String[] args) {
        //二元运算符
        int a = 10;
        int b = 20;
        int c = 25;
        int d = 25;

        System.out.println(a+b);//30
        System.out.println(a-b);//-10
        System.out.println(a*b);//200
        System.out.println(a/b);//0,有小数int类型会四舍五入所以变成0
        System.out.println(a/(double)b);//0.5
    }
}

运算符和类型转换

public class Demo02 {
    public static void main(String[] args) {
        long a = 10000000000000L;
        int b = 123;
        short c = 10;
        byte d = 8;

        //不同类型混合运算无论是赋值还是运算都是向高位转
        System.out.println(a+b+c+d);//为Long类型
        System.out.println(b+c+d);//Int
        System.out.println(c+d);//Int
    }
}

比较运算符

public class Demo03 {
    public static void main(String[] args) {
        //关系运算符返回的结果:true或false 布尔值
        int a = 10;
        int b = 20;
        int c = 21;

        //取余  模预算
       System.out.println(c%a);//  c/a->21/10=2...1

        System.out.println(a>b);//false
        System.out.println(a<b);//true
        System.out.println(a==b);//false
        System.out.println(a!=b);//true
    }
}

自增自减

//++ 自增 -- 自减   一元运算符
int a = 3;

//执行这行代码后,先给b赋值,再自增
int b = a++;
System.out.println(b);//3
System.out.println(a);//4

//执行这行代码前,先自增,再给c赋值
int c = ++a;
System.out.println(a);//5
System.out.println(c);//5

//幂运算 3^2->3*3=9;使用Math数学工具类
double pow = Math.pow(3,2);//3*3=9
System.out.println(pow);//9

逻辑运算

//与(and)    或(or)   非(取反)
boolean a = true;
boolean b = false;

//逻辑与运算:两个变量都为真,结果才为真
//此时(b&&a)中的b为假,则后面a的判断代码就不在执行
System.out.println("a&&b:" + (b&&a));//false

//逻辑或运算:两个变量都为假,结果才为假
System.out.println("a||b:" + (a||b));//true

//取反:如果是真,结果为假;如果是假,结果为真
System.out.println("!(a&&b):" + !(a&&b));//true

//短路运算:检测上面逻辑与运算
int c = 5;
boolean d = (c<4)&&(c++<4);
System.out.println(d);//false
System.out.println(c);//5,所以后面的(c++<4)没有运算

位运算(面试题,要了解)

例:
A = 0011 1100
B = 0000 1101

//与运算:两个都为1时才为1,否则为0
A&B = 0000 1100

//或运算:两个都为0时才为0,否则为1
A|B = 0011 1101

//异或:两个相同为0,不相同为1
A^B = 0011 0001

//取反:0变为1,1变为0
~B = 1111 0010

面试可能会问的:
2乘8怎么写代码效率最高?
一般人会写2*8 = 16 即计算机会2*2*2*2

计算机是二进制的
0000 0000	0
0000 0001	1
0000 0010	2
0000 0011	3
0000 0100	4
0000 0101	5
0000 0110	6
0000 0111	7
0000 1000	8
0001 0000	16

这里使用"<<"(左移运算符,乘法)和">>"(右移运算符,除法)
2<<3 即向左移三位(看二进制),即2乘上3个2=2*8=16
左移和右移运算符效率极高!!!
最终代码编写结果如下:
System.out.println(2<<3);

扩展赋值运算符(面试)

int a = 10;
int b = 20;

a+=b;//a = a+b
a-=b;//a = a-b

面试:
//字符串连接符    +   ,String;只要“+”任意一边又String类型,结果都为String类型
System.out.println(""+a+b);//1020;因为""在前面,所以直接全面判断为String类型
System.out.println(a+b+"");//30;因为前面两个是int类型,所以先相加

三元运算符(必须掌握)

//x?y:z
//如果x==true,则结果为y,否则结果为z
int score = 80;
String type = score < 60 ? "不及格":"及格";
System.out.println(type);//及格
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java是一种面向对象的程序设计语言,有许多内置的数据类型供开发者使用。这些数据类型可以帮助我们在程序中定义不同类型的变量,并对这些变量进行操作和处理。 Java数据类型分为两大类:基本数据类型和引用数据类型。基本数据类型包括整型、浮点型、字符型和布尔型,用于存储简单的数据值。引用数据类型则是指对象类型,用于存储复杂的数据结构。 在进行Java数据类型实验时,可以通过创建不同类型的变量来演示它们的特性和用法。例如,可以创建一个整型变量来存储一个整数值,使用运算符对其进行减乘除等运算,并将结果输出到控制台上。 另外,也可以尝试使用浮点型数据类型来储存实数值,对其进行各种算术运算,以及比较大小、取整等操作。字符型数据类型可以用来存储单个字符,例如创建一个字符变量来表示一个字母,使用各种字符相关的方法对其进行处理。 布尔型数据类型则用于存储逻辑值,即真或假。可以通过创建一个布尔变量,并使用逻辑运算符对其进行逻辑判断,以及进行条件语句的控制。 此外,还可以进行引用数据类型的实验,例如创建一个字符串对象,使用字符串类的各种方法对其进行处理。还可以创建一个自定义的类,例如创建一个学生类,定义各种属性和方法,实验对象的创建、属性的访问和方法的调用。 总之,Java数据类型实验可以帮助我们深入了解不同类型的数据在程序中的存储和处理方式,从而更好地应用和扩展Java语言的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值