吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1745|回复: 2
收起左侧

[Java 转载] Day05——Java基础知识

[复制链接]
明天也有晚霞嘛 发表于 2021-3-13 00:12

Day05——Java基础知识

注释

  1. 单行注释:只能注释当前行,以//开始,直到本行结束

    //单行注释
  2. 多行注释:注释一段文字

    /*多行注释
    注释并不会被计算机编译
    注释是为了提高程序代码的可读性*/
  3. 文档注释:(又称 说明注释)用于生产API文档,配合JavaDoc。

    说明注释在程序中嵌入关于程序的信息。可以使用 JavaDoc 工具软件来生成信息,并输出到HTML文件中,使你更加方便的记录你的程序信息。

    /** 开始,以*/结束。

    /**
    * 这个类演示了文档注释
    * home.php?mod=space&uid=686208 明天也有晚霞嘛     //作者
    * home.php?mod=space&uid=1248337 1.8           //使用版本
    */

    关键字

    百度百科——关键字
    image-20210312201806074.png

    标识符

    类名、变量名以及方法名都被称为标识符。

    • 所有的标识符都应以大小字母(A-Z 或 a-z)、美元符号($)、或者下划线(_)为开始

    • 不能使用关键字作为  变量名  或  方法名。

    • 标识符区分大小写。(即 Man 和 man 不同。)

      JAVA不采用通常语言使用的ASCII字符集,而是采用unicode这样的标准的国际字符集。

数据类型

Java的数据类型分为两大类:

  • (八大)基本数据类型(Primitive Type)

    1. 整数类型:
    • byte     占1个字节,范围[-128,127]

      • short   占2个字节,范围2^15  [-32678,32767]

      • int        占4个字节,范围2^31  [-2147483648,2147483647]

      • long     占8个字节,long类型要在数字后加L,范围[-2^63,2^63  -1]

    1. 浮点类型:

      • float      占8个字节,float类型要在数字后加F

      • double  占8个字节

      Java语言的整型常数默认为int型,浮点数默认是Double

    2. 字符类型:

      • char       占2个字节(单字符)

      字符串要用String(类)来定义

    3. boolean类型:

      • boolean        占1(true、false)
  • 引用数据类型(Reference Type)

    1. 类(class)
    2. 接口
    3. 数组

1B(byte,字节)=8bit(位)


整数拓展

  1. 二进制:0b开头,0b101=5;

  2. 八进制:0开头,010=8;

  3. 十六进制:0x开头,0x10=16;      0~9   A~F

    浮点拓展

    ​        浮点数一般都存在舍入误差,无法精确表示,其结果只能是接近。

  • 最好完全避免使用浮点数比较 !

    ​        如果需要进行不产生舍入误差的精确数字计算,需要使用BigDecimal类。

​                Java.math下面的两个有用的类:BigInteger和BigDecimal,这两个类可以处理任意长度的数 值。BigInteger实现了任意精度的整数运算。BigDecimal实现了任意精度的浮点运算。

字符型拓展

​                单引号用来表示字符常量。例如‘A’是一个字符,它与“A”是不同的,“A”表示一个字符串。

​                Unicode编码被设计用来处理各种语言的所有文字,它占2个字节,可允许有65536个字符。

​                Unicode具有从0到65535之间的编码,他们通常用从’u0000’到’uFFFF’之间的十六进制值来表示(前缀为 u表示Unicode)

  • 转义字符

    1. \b:退格
    2. \n:换行
    3. \r:回车
    4. \t:制表符(tab)
  • String类,其实是字符序列(char sequence)。

    //代码1
    String sa=new String("Hello world");
    String sb=new String("Hello world");
    System.out.println(sa==sb); // false
    //代码2
    String sc="Hello world";
    String sd="Hello world";
    System.out.println(sc==sd); // true
    
    • 引用数据类型 比较 地址值,基本数据类型 比较 数值。
      > - JVM为了提升性能和减少内存开销,避免字符串的重复创建,维护了一块特殊的内存空间——字符串实例池

    先看代码二中  例String str = "test";

以这种方式赋值时,JVM会先从字符串实例池中查询是否存在"test"这个对象,

String sc="Hello world";字符串实例池中没有"Hello World"对象。

如果不存在,则会在实例池中创建"test"对象,并把该对象的地址返回给str。

不存在"Hello World"对象,因此该行代码会在实例池中创建"Hello World"对象,并把该对象的地址返回给sc。

如果存在,直接把实例池中"test"的地址返回给str。

String sd="Hello world";

此时字符串实例池中存在"Hello World"对象,直接把实例池中"Hello World"的地址返回给sd。

因而,此时sc与sd地址指向实例池中同一对象(地址)(引用数据类型String 比较 地址值),sc==sd成立。

​                而在代码一中  例String str =new String("test");

以这种方式赋值时,JVM会先从字符串实例池中查询是否存在"test"这个对象,

String sa=new String("Hello world");字符串实例池中没有"Hello World"对象。

​                若不存在则会在实例池中创建"test"对象,同时在中创建"test"这个对象,然后将中的这个对象的地址返回赋给引用str。

不存在"Hello World"对象,因此该行代码会在实例池中创建"Hello World"对象,同时在中创建"Hello World"这个对象,然后将中的这个对象的地址返回赋给引用sa。

​                若实例池存在则直接在中创建"test"这个对象,然后将中的这个对象的地址返回赋给引用str。

String sb=new String("Hello world");

​                此时字符串实例池中存在"Hello World"对象,直接在中创建"Hello world"这个对象,然后将中的这个对象的地址返回赋给引用sd。

​                此对象为sb在中新建的第二个"Hello world"对象,与sa在中创建的对象不同。

​                因而,此时sa与sb地址指向中不同对象(地址)(引用数据类型String 比较 地址值),sa==sb不成立。

  • 详细请见 String与new String()的区别

    布尔类型拓展

    boolean类型占一位(bit),有两个值,true和false,

    不可以 0 或非 0 的整数替代 true 和 false ,这点和C语言不同。


类型转换

  • 自动类型转换:低-->高
  • 强制类型转换:高-->低

不同类型的数据进行混合运算时,先转化为同一类型,然后进行运算。

运算时,从低级到高级自动类型转换

低 ------------------------------------> 高

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

【注】转换过程中可能导致溢出或损失精度,例如:

int i =128;
byte b = (byte)i;

因为 byte 类型是 8 位,最大值为127,所以当 int 强制转换为 byte 类型时,值 128 时候就会导致溢出。

【注】浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入,例如:

(int)23.7 == 23;
(int)-45.89f == -45

【扩展】数字之间可以用下划线分割,例:

int num = 100_0000_0000;
System.out.println(num);        //1000000000

免费评分

参与人数 4吾爱币 +3 热心值 +3 收起 理由
hy125800 + 1 + 1 可以收获很多
ZhangJunYi + 1 我很赞同!
xuewuyingfei + 1 学习中!
zyj295521 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

luminousman 发表于 2021-3-13 01:36
可以  ,跟着一起学。
Inch 发表于 2021-3-13 10:07
原来数字还可以加下划线啊, 学习了, 之前就觉得很容易输错
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-10 14:58

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表