0
点赞
收藏
分享

微信扫一扫

2022-03-29 西安 JavaSE(01)

玉字璧 2022-03-30 阅读 32
javajavase

进制转换

进制:带进位的计数方法。数运算几进制:逢几进一位。
十进制转其他进制,辗转相除法
把十进制数字不断除以指定进制数如2(每除一次记录好余数),除到直到商为0位置。1/2=0...1最后将所有余数倒序组合。

其他进制转十进制:8421编码
用这个位上的数字乘以这个位上的权重。再把每个位上的数字相加
十进制数字 1234=1*10^3+2*10^2+3*10^1+4*10^0
二进制数字转十进制:10100=1*2^4+1*2^2=16+4=20

九进制转十三进制,以10进制为媒介。


字节和位
字节(Byte)是以计算机中最小的存储单元。(右键,属性)
位(bit):二进制位,每个0或1就是一个位。

  • 1Byte=8bit  一个字节等于八位。
  • 1KB=1024Byte
  • 1MB=1024KB
  • 1GB=1024MB
  • 1TB=1024GB

关键字

关键字53个,51个常用,2个保留关键字。关键字必须全部小写。main不是关键字


声明数据类型与占用字节数

声明整数的数据类型:
程序中每声明一个byte类型变量,占用1个字节内存。
程序中每声明一个int类型变量,占用4个字节内存。(默认int)

浮点类型数据(小数):
程序中每声明一个float类型变量,占用4个字节内存。
程序中每声明一个double类型变量,占用8个字节内存。(默认double)

字符类型:
声明单个字母,数字,汉字等符号的数据类型。字符类型占用字节数:
内码,由底层源码创建的类型变量,每个字符占用2个字节。
外码,由程序员自定义的char,每个字符占用字节数遵守编码规则。

布尔类型:
单独声明,每个变量占用4个字节内存。

声明在数组中,每个元素占用1个字节。


类型初始化:

long类型初始化
错误写法:Long num=12345678900//是按照int存的
正确写法:Long num=123L;(l或L,推荐L)给long类型初始化赋值,要加l或者L

整数类型初始化:(4种)
用4种进制对整数初始化

    public static void main(String[] args) {
        int n = 200;
        int n1=11001000;
        //二进制数字赋值:(数值由0~1组成,在前面加0b或者0B)
        int n2=0b11001000;
        System.out.println(n);//200
        System.out.println(n1);//11001000
        System.out.println(n2);//200
        //以此类推,用其他进制定义整数200的方法
        //八进制数字赋值(,数值由0~7组成,在前面加0)
        int n3=0310;
        //十六进制(前面加0x或者0X)
        int n4=0xc8;
        System.out.println(n3);//200
        System.out.println(n4);//200

    }

Integer类封装十进制整数转其他进制的方法:

    public static void main(String[] args) {
        int n = 200;
        System.out.println(n + "的二进制是:" + Integer.toBinaryString(n));//200的二进制是:11001000
        System.out.println(n + "的八进制是:" + Integer.toOctalString(n));//200的八进制是:310
        System.out.println(n + "的十六进制是:" + Integer.toHexString(n));//200的十六进制是:c8
        System.out.println(n + "的三进制是:" + Integer.toString(n, 3));//200的三进制是:21102
    }

浮点数初始化注意:
初始化值由三部分组成,负数,整数,正数
float num05=12.34f(给float类型初始化要加f或者F)

字符类型初始化值:(4种初始化)

Java 语言中的字符类型(char)使用两个字节的 Unicode 编码表示
由单引号''表示,有且只有一个字符。可以是字母,数字,汉字,标点符号

  • char c1='a';       //单个字符
  • char c2=27801  //0-65535之间的数字都可以,对应Unicode码表
  • char c3='\u0061'  //65535对应FFFF。对不足4位的,需要补0占位。
        char c1 = 200;
        char c2 = '\u00c8';
        System.out.println("字符1值为:"+c1);//字符1值为:È
        System.out.println("字符2值为:"+c2);//字符2值为:È,c8转为10进制就是200

标识符:
在程序中给变量,方法,类,接口,包等起的名字。
标识符由26个大小写英文,0-9数字,美元$,下划线_,中文组成
数字不能作为标识符的开始,标识符不推荐中文。


变量初始化

变量在使用前,必须先赋值。
变量作用域就是变量所属的大括号

简单但是意料之外的代码结果:
 

byte var1=127; //范围-128~127,byte 类型是最小的整数类型
System.out.println(var1);//127 以为输出会是0111 1111,结果是个是十进制整数

float var5=9.00F;
System.out.println(var5);//9.0 输出里没有F很意外,而且以为是9.00

double var6=10.0;
System.out.println(var6);//10.0

//小数运算经常出现精度丢失
double x=100.8,y=20.6;
System.out.println("差:"+(x-y));//差:80.19999999999999
System.out.println(15/2);//7  我在想这玩意输出到底是7还是7.5,一下整蒙了

 
byte a = 127;
a+=1;//java编译器会对它进行特殊处理,把int强转为了byte 相当于 a=(byte)(a+1);
System.out.println(a);//-128 我以为直接报错了,没想到还真出来结果了,汗

byte b = 127;
//b是byte类型,但是1会自动提升表达式的类型为int
b=b+1;//以为不会报错,结果报错了,啪啪打脸啊

举报

相关推荐

2022/01/29

2022-04-15 西安 javaSE(08)

JavaSE笔记03

javaSE部分(01)

JavaSE01

2021-03-29

0 条评论