java基础查漏补缺

查漏补缺

  • 关于classpath
    在没有IDE的情况下,可以使用javac(java compiler)命令来编译java文件为class字节码文件。
    classpath变量是寻找类路径的变量,在这个路径下的java文件才可以被javac直接编译。

  • 数据类型
    基础类型有8种:byte,short,char,int,long,float,double,boolean
    各自的内存空间大小:
    byte:1个字节(1个字节占8位或者说是8bit)
    short:2个字节
    char: 2个字节
    JAVA内部使用的是utf-16

Utf-16就是说规定了一个字符用16位(2个字节)的空间来存储
utf-8是一个字符用8位(1个字节)的空间来存储

16位就是2的16次方,几乎涵盖了所有国家的文字和符号,所以utf-16比utf-8能表示的字符要多得多

使用char a = '/u0000’来定义一个字符变量a为‘/u0000’ ,实际上存的是16个0;


编码方面

困扰了我很久的编码,终于理清了。

  • 什么是unicode?
    unicode是一个全球的(编码)规范,规定了什么数字代表什么字符。
    而在计算机中都是用二进制来表示,所以unicode实际上就是规定了什么二进制数字对应什么字符
    unicode最初定义为16位来表示,所以使用十六进制来表示。
举例: 数字'25105'   在unicode中代表中文'我'    
      十进制25105换成十六进制就是6211
      二进制就是0110 0010 0001 0001
      也就是说如果是0110 0010 0001 0001这一串二进制数字,unicode中代表的是'我'这个字符

unicode的一般表示就是类似\uBBBB这种形式的,
上例中的’‘的unicode码就是:\u6211


  • ascail码是什么?

为什么不先讲这个呢,因为我是从unicode开始理清的。
ascail码就是很早之前美国编制的一套标准,为什么强调了美国呢?
因为美国是使用英文作为语言的,总共26个字母
ascail码也是一套编码规范其中包含了26个小写字母,26个大写字母,数字0~9,一些计算机符号以及特殊的表情符号
总共128个字符,所以只需要7位二进制数字就可以表示所有ascail码了。

举例:数字'65'   在ascail码中代表字符'A'
	十进制65换成二进制就是100 0001
  • 为什么不转成十六进制呢?

因为ascail码最大是7位,不需要十六进制表示。

unicode是在ascail的基础上扩展出来的。


utf-8

先不说utf-8,继续说一下unicode
前面我们提到25105代表unicode的’我‘,那定好了这个规则,如何实现将’我‘这个字符存到计算机中呢?
引用百度百科的定义:

Unicode 编码共有三种具体实现,分别为utf-8,utf-16,utf-32,其中utf-8占用一到四个字节,utf-16占用二或四个字节,utf-32占用四个字节。

utf-8占用一到四个字节,是根据字符的范围来决定的。

GBK

那么GBK又是什么呢,GBK是中文字符的一个编码方式
GBK的英文字符占1个字节,中文字符2个字节


接下来使用一个小例子来说明一下:

用idea新建一个txt
输入几个英文字母

  • 英文字符
    在这里插入图片描述
    idea右下角确保是GBK
    在这里插入图片描述
    查看一下大小
    在这里插入图片描述
    3个字节,那么说明
    GBK英文字母编码方式为一个字母占一个字节

    切换为UTF-8编码方式
    在这里插入图片描述
    参考刚刚的操作可以得出结论
    UTF-8英文字母编码方式也是一个字母占一个字节

  • 中文字符
    参考英文字符的方法
    然后我们可以得出下面的结论:
    GBK中文字符编码方式是一个中文字符占2个字节
    UTF-8中文字符编码方式是一个中文字符占3个字节


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值