我的java学习日志day02
笔记日期2019年6月29日
温故知新\\
/**这是一个代表人的类,输出的是蛤?
class person{public static void main(
String[] args)}{
System.out.println("蛤??");
}
--------------------
关键字
定义:给包、类、接口、方法、变量等
起名字的字符序列。
组成规则:
1、中文字符、英文大小写字母
2、_ 、$、
_下划线不嫩单作为标识符使用
3、数字作为标识符时不能开头。
实例演示:
class S1{publci static void main(String[]
args){int 年龄 = 5 ;
System.out.println(“a”);}}
--------------------------------*–
命名规则
1、顾名思义
2、驼峰规则
例如:MissYou
包:单个单词:所有英文字母全部小写。
多个单词:每个单词均小写,
单词之间要用 . 隔开;
-----------**------
进制的概念
在计算机内所有数据,都要转化成二进制来处理
a、十进制,满十进一
b、二进制,满二进一
实例:
二进制转十进制
10111 = 120+1*21+022+1*23=11
十进制转二进制:
234
234/10=23 4
23/10=2 3
2/10=0 2
12
12/2=6 0
6/2=3 0
3/2=1 1
1/2=0 1
则得出的结果为 1100
二进制从后向前,将余数依次排列
八进制 0 - 7 之间的
三个二进制数,就可以代表一个八进制数字
进行转换
0 1 2 3 4 5 6 7 8 9 10 11 12
011 010 101 011 110 001 111
转换后为 3 2 5 3 6 1 7
3253617
从右往左就是相应的八进制数
八进制转换二进制同理
------–-----------
十六进制 满十六进一
四个二进制数字代表一个十六进制数字
二进制数字转换十六进制数字时,四个
二进制数字代表一个十六位的数字。
如下:
0 1 2 3 4 5 6 7 8 9 a b c d e f
1011 1101 1100 0110 1011
b d c 6 b
a b c d 6 e 4 f
八进制转换二进制
十六进制转换二进制
两者同理,将每位的数字分开
每位数字转换为相应的二进制数字
再组合。。。
-------------------
二进制的单位
在计算机内部每一个二进制
称为1个比特位bit
8个bit为一个byet(字节)
计算机内最基本单位就是byte
byte、kb、mb、gb、pb
大数据处理的数据,以pb为单位。
-------------**------
知识补充:
格式之间的区别。就是如何转化成二进制。
例如 avi mp4…
码表
码表就是字符到二进制的映射关系
世界上有很多码表
latin 1
中国开发的项目是GB2312、GBK(GB国标)
utf-8
unicode、
以及各种码表】
如果查看程序时出现乱码,则表示码表对比错误。
--------------------*
变量
概述:数值会在一定范围内变化的量;
变量定义的格式:
数据类型 变量名 = 初始化值;
变量名应符合标识符起名规范。
变量定义的格式是固定的。
案例2、
class xx{public static void main(
String[])args}{
第一种方法:
数据类型 变量名 = 初始化值;
声明后直接赋值
int ha = 1;
第二种方法:
声明 数据类型 变量名
变量名 = xxxx
先声明在赋值;
System.out.println(ha);
}变量必须赋值;变量名不能重复;
数字直接量可以用 二进制、八进制、十六进制表示
但是不同的进制需要有不同的前缀表示;
--------–----------
二进制需要前缀 0b
八进制数字需要前缀 0开头(数字零)
十六进制数字需要前缀0x开头
输入其他进制的数值时,
小数声明 double或者float之后可以直接输入
字符直接量;
字符直接量需要用单引号括起,且只能表示一个
也可表示中文,但也只能输入一个字;
单引号内不允许出现空字符
布尔直接量 只能定义真假 true false
-******************–----
数据类型的概述
基本数据类型:整数型、浮点型、布尔型;
整数型:byte(1)、short(2)、
int(4)、long(8)、括号内为占用字节
数值范围:
byte (-27–27-1) -128~127
short -215–215-1 - 32768~32767
int -231–231-1
long -263–263-1
浮点型:float、double、
引用数据类型(复杂数据类型):类(class)、
接口(interface)数组(arr);
案例1、
public classXX{public static void main(String[]args{
//数据类型 变量名= 初始化值
byte a = 6;
System.out.println(b);
long a = 1325456465421L
}}
long 类型:如果数值超过了int的范围,则需要在
数值后加L或者L表示long类型的范围。
真值:1111 1111 = 255
机器运算时运用机器数
机器数的最高位为符号位
0代表正数
1代表负数
则1111 1111用机器数进行运算时为
0代表正 + 1111变成 0111 正127
后半部分不变 1111 1代表负号- 运算结果为127
------------------********-
反码
反码的表示形式为 正数的反码是其本身
+1=原【0000001】=0000001反码=00000001补码
-1【0000001】=1111110反码=1111111补码
------*-*****************************
变量的作用域
如果声明变量名之后没有赋值,
输出时则会给定默认值
输出时则会输出默认值
》》》》》》》》》》》》》》》》》》》》》
数据类型的转换
数据类型的自动转换
转换顺序byte short int long float double
例如
byte a = 1;
short b = a;
大数据类型转换至小数据类型,会报错
--------------–--*--
强制类型转换
由大转小需要强制类型转换,但是如果数值范围不当
由可能会出现精度损失。
例如 int a = 128;
byte b = (byte)a;
结果为-128
经典面试题
byte b1 = 3; b2 = 4;
b = b1+b2;
编译是否正确
答案 错误
应修改为: b = (byte)(b1+b2);