Java基础知识点

学习Java前提

位(bit) :一个数字或者一个数字1代表一位。
字节(Byte) :每逢8位是一个字节,这是数据存储的最小单位。

1Byte=8bit
1 KB = 1024 Byte
1 MB =1024KB
1 GB =1024 MB

100Mbps的宽带,传输速率应该为100/8=12.5MB/s

命令行的操作:

进入文件夹 cd 文件夹名称
进入多级文件夹 cd 文件夹1文件夹2\文件夹3
返回上一级  cd . .
真接回根路径  cd \
查看当前内容 dir
清屏  cls
退出 exit

编译java文件:令行中编写javac helloworld.java
运行java文件:令行中编写java helloworld

Java语言的跨平台性:
Java虚拟机JVM并不具有跨平台性,是Java程序有该特性,不同系统有各自的JVM进行翻译
●JRE(Java Runtime Environment) :是Java程序的运行时环境,包含JVM和运行时所需要的核心类库。
●JDK (Java Development Kit):是Java程序开发工具包,包含JRE和开发人员使用的工具,负责运行Java应用。
●JIT代表即时编译(Just In Time compilation),当代码执行的次数超过一定的阈值时,会将Java字节码转换为本地代码,如主要的热点代码会被准换为本地代码,这样有利大幅度提高Java应用的性能。

JVM支持boolean数组,但是是通过读写byte数组实现的
Ctrl+N查找类 二次敲击ctrl+N是选择非项目类

1.Java数据类型

1.1 取值范围、缓冲池

基本数据类型
整数型:byte short int long
浮点型:float double
字符型:char
布尔型:boolean
引用数据类型:字符串、数组、类、接口、Lambda

浮点型可能只是一个近似值,并非精确的值。
数据范围与字节数不一定相关,例如float数据范围比long更加广泛,但是float是4字节,long是8字节。
浮点数当中默认类型是double.如果一定要使用float类型,需要加上一个后缀F;如果是整数,默认为int类型,如果一定要使用long类型,需要加上一个后缀L。推荐使用大写字母后缀。
在这里插入图片描述
对于int来说,不论是32位JVM还是64位JVM都是占32位
byte的取值范围为-128~127,占用1个字节(-2的7次方到2的7次方-1)
short的取值范围为-32768~32767,占用2个字节(-2的15次方到2的15次方-1)
int的取值范围为(-2147483648~2147483647),占用4个字节(-2的31次方到2的31次方-1)
long的取值范围为(-9223372036854774808~9223372036854774807),占用8个字节(-2的63次方到2的63次方-1)

在通常情况下,如果JAVA中出现了一个整数数字比如35,那么这个数字就是int型的,如果我们希望它是byte型的,可以在数据后加上大写的 B:35B,表示它是byte型的,同样的35S表示short型,35L表示long型的,表示int我们可以什么都不用加,但是如果要表示long型的,就一定要在数据后面加“L”。

基本类型对应的缓冲池如下:
• boolean values true and false
• all byte values
• short values between -128 and 127
• int values between -128 and 127
• char in the range \u0000 to \u007F
在使用这些基本类型对应的包装类型时,如果该数值范围在缓冲池范围内,就可以直接使用缓冲池中的对象。
在 jdk 1.8 所有的数值类缓冲池中,Integer 的缓冲池 IntegerCache 很特殊,这个缓冲池的下界是 - 128,上界默认是 127,但是这个上界是可调的,在启动 jvm 的时候,通过 -XX:AutoBoxCacheMax= 来指定这个缓冲池的大小,该选项在 JVM 初始化的时候会设定一个名为 java.lang.IntegerCache.high 系统属性,然后 IntegerCache 初始化的时候就会读取该系统属性来决定上界。

1.2 数据类型转换

自动转换:小范围转化成大范围 byte–short–int–long float–double 虚线表示存在精度损失
强制转换:范围小的类型 范围小的变量名=(范围小的类型) 原本大范围的数据;
在这里插入图片描述

注意事项:
        1.强制类型转换一般不推荐使用,因为有可能发生精度损失、数据溢出。
        2. byte/short/char这三种类型都可以发生数学运算,例如加法“+.
        3. byte/short/char这三种类型在运算的时候,都会被首先提升成为int类型,然后再计算
        4. boolean类型不能发生数据类型转换

        byte num4 = 40;// 注意!右侧的数值大小不能超过左侧的类型范围
        byte num5 = 50;
        // byte + byte --> int + int --> int
        int result1 = num4 + num5;
        System.out.println(result1); // 90

1.3 变量

为变量进行赋值时要注意,float和long类型要加后缀;
可以在一行声明多个变量,例如int a,b; 但是最好分行写
声明一个变量之后,必须用赋值语句对变量进行显式初始化 。没有进行赋值的变量,不能直接使用

同时创建了三个全都是int类型的变量
        int a, b, c;//各自分别赋值
        a = 10;
        b = 20;
        c = 30;
        System.out.println(a); // 10
        System.out.println(b);// 28
        System.out.println(c); // 30 
同时创建三个int变量,并且同时各自赋值
        int x = 100, y = 200,z =300;

1.4 常量

常量的分类:
        1.字符串常量:凡是用双引号引起来的部分,叫做字符串常量。例如: "abc""Hello""123"
        2.整数常量:直接写上的数字,没有小数点。例如:1002000-250
        3.浮点数常量:直接写上的数字,有小数点。例如:2.5-3.140.0
        4.字符常量:凡是用单引号引起来的单个字符,就做字符常量。例如:'A'、"b'、'9'、'中'
        5.布尔常量:只有量中取值。truefalse.
        6.空常量:null。代表没有任何数据。

        System.out.println(""); //字符串两个双引号中间的内容为空
        System.out.println( "xYZ");
        //整数常量
        System.out.println(30);
        System.out.println(-500);
        //浮点数常量(小数)
        System.out.println(3.14);
        System.out.println(-2.5);
        //字符常量
        System.out.println( 'A');
        System.out.println( '6');
        //System.out.println('');//两个单引号中间必须有且仅有一个字符,没有不行。
        //System.out.println('AB');//两个单引号中间必须有且仅有一个字符,有两个不行。
        //布尔常量
        System.out.println(true);
        System.out.println(false);
        //空常量。空常量不能直接用来打印输出。
        //System.out.println(nu11);

1.5 字符所占字节

Java采用unicode来表示字符,java中的一个char2个字节,一个中文或英文字符的unicode编码都占2个字节
在 GB 2312 编码或 GBK 编码中,一个英文字母字符存储需要1个字节,一个汉子字符存储需要2个字节。
在UTF-8编码中,一个英文字母字符存储需要1个字节,一个汉字字符储存需要34个字节。
在UTF-16编码中,一个英文字母字符存储需要2个字节,一个汉字字符储存需要34个字节(Unicode扩展区的一些汉字存储需要4个字节)。
在UTF-32编码中,世界上任何字符的存储都需要4个字节。
        String a="你好 hello";
        System.out.println("UTF-8编码长度:"+a.getBytes("UTF-8").length);
        System.out.println("UTF-16编码长度:"+a.getBytes("UTF-16").length);
        System.out.println("UTF-32编码长度:"+a.getBytes("UTF-32").length);
        System.out.println("GBK编码长度:"+a.getBytes("GBK").length);
        System.out.println("GB2312编码长度:"+a.getBytes("GB2312").length);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值