当前位置: 首页 > article >正文

Java基础笔记

1.数据类型在java语言中包括两种:
     第一种:基本数据类型
      基本数据类型又可以划分为4大类8小种:
       第一类:整数型
       byte , short,int, long(没有小数的)

       第二类:浮点型
       float,aouble(带有小数的)

       第三类:布尔型
       boolean:只有两个值true和false,true表示真,false表示假

       第四类:字符型
       char: java中规定字符型字面量必须使用单引号括起来,属于文字。
8小种:
byte , short, int , long,float,double
boolean
char
   第二种:引用数据类型
  字符串型string属于引用数据类型-
  string字符串不属于基本数据类型范畴
   java中除了基本数据类型之外,剩下的都是引用数据类型。

关于计算机存储单位?
计算机只能识别二进制-( 1001101100 . ..)

1字节=8bit (8比特)--> 1byte = 8bit

1bit就是一个1或0.

1字节 = 1byte = 1B = 8位;
1KB = 1024B;
1MB = 1024KB;
1GB = 1024MB

 基本数据类型所占字节数

2.转义字符

 3.整数型

3.1整数型的4种编写方式

public class Main {
    public static void main(String[] args) {
        //十进制
        int a = 10;
        System.out.println(a);
        //八进制
        int b = 010;
        System.out.println(b);
        //十六进制
        int c = 0x10;
        System.out.println(c);
        //二进制
        int d = 0b10;
        System.out.println(d);
    }
}

在java中有一条非常重要的结论:


在任何情况下,整数型的"字面量/数据"默认被当做int类型处理。(记住就行)如果希望该"整数型字面量"被当做long类型来处理,需要在"字面量"后面添加L/l建议使用大写L,因为小写字母l和1傻傻分不清-

易错代码

下面给出一个易错代码

编译器会不会报错呢?有人说y 是 long 类型的不会报错,--------这是错的,看上面加粗的字体。

这样就对了

下面也是错的

long l = 100L;

int x = l;

大容量转换成小容量,需要进行强制类型转换强制类型转换,如下

long l = 100L;

int x =(int)l;

需要加“强制类型转换符”,加上强制类型转换符之后编译通过了,但是运行阶段可能损失精度。

所以强制类型转换谨慎使用,因为损失精度之后可能损失很严重

强制类型转换

补充:补码,原码,反码 

1. 原码

原码就是符号位加上真值的绝对值,即用第一位表示符号,其余位表示值。比如:如果是8位二进制:

[+1]原= 0000 0001

[-1]原= 1000 0001

第一位是符号位,因为第一位是符号位,所以8位二进制数的取值范围就是:(即第一位不表示值,只表示正负。)

[1111 1111 , 0111 1111]

[-127 , 127]

原码是人脑最容易理解和计算的表示方式。

2. 反码

反码的表示方法是:

正数的反码是其本身;

负数的反码是在其原码的基础上,符号位不变,其余各个位取反。

[+1] = [0000 0001]原= [0000 0001]反

[-1] = [1000 0001]原= [1111 1110]反

可见如果一个反码表示的是负数,人脑无法直观的看出来它的数值。通常要将其转换成原码再计算。

3. 补码

补码的表示方法是:

正数的补码就是其本身;

负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后+1。(也即在反码的基础上+1)

[+1] = [0000 0001]原= [0000 0001]反= [0000 0001]补

[-1] = [1000 0001]原= [1111 1110]反= [1111 1111]补

对于负数,补码表示方式也是人脑无法直观看出其数值的。通常也需要转换成原码再计算其数值。

 

小结论: 

 


http://www.kler.cn/a/132395.html

相关文章:

  • Gin路由深入
  • 小程序-基于java+SpringBoot+Vue的小区服务管理系统设计与实现
  • 服务器数据恢复—热备盘未激活导致硬盘掉线的raid5阵列崩溃的数据恢复案例
  • ks 小程序sig3
  • 多线程4:线程池、并发、并行、综合案例-抢红包游戏
  • Python-简单病毒程序合集(一)
  • Java将List转换为Tree数据
  • Java 12 及Tomcat 部署配置
  • docker自启与容器自启
  • SMB信息泄露的利用
  • upload-labs关卡11(双写后缀名绕过)通关思路
  • Web之CSS笔记
  • Java排序算法之希尔排序
  • 【算法】Java 算法设计模式的应用场景
  • Kafka入门教程与详解(一)
  • Git 分支管理
  • JVM判断对象是否存活之引用计数法、可达性分析
  • 最新AI创作系统ChatGPT系统运营源码+支持GPT-4多模态模型
  • 【C++】泛型编程 ⑥ ( 类模板 | 类模板语法 | 代码示例 )
  • PyCharm中常用插件推荐
  • 【Mysql】学习笔记
  • U-boot(二):主Makefile
  • 大型且复杂项目的资源管理怎么做?
  • 模拟实现一个Linux中的简单版shell
  • 6.docker运行mysql容器-理解容器数据卷
  • 邀请报名|11月24日阿里云原生 Serverless 技术实践营 深圳站