JAVASE第2天笔记

来源:互联网 发布:java编辑工具 编辑:程序博客网 时间:2024/06/02 02:29

Day02课堂笔记

标签(空格分隔): java基础


1:常量的概述和使用 (非常重要)

常量:在程序运行过程中,其值不可以发生改变
常量分类:字符串常量 整数常量 小数常量 字符常量 布尔常量 空常量
举例: 布尔常量 true false
空常量 null
字符串常量:用双引号括起来 ” ”
字符常量: 单引号括起来 ”

2.:进制概述

二进制 八进制 十进制 十六进制
八进制:三位一组
十六进制:四位一组

3:进制表现形式(掌握)

  • 二进制: 0b开头 0-1 可以大写也可以小写
  • 八进制: 0开头 0-7
  • 十进制: 默认
  • 十六进制:0x x可以小写可以大写

4:进制转换(了解)

  • 任意进制转十进制 : 系数 * 基数的权次幂 相加即可
    举例:12345
    1*10^4 + 2 *10^3 + 3*10^2 + 4*10^1 + 5
    系数:每一位的数
    基数:进制
    权次幂:从右往左,依次算个数,不包括自身
  • 十进制转任意进制 : 除基倒取余数,直至商为0

  • 快速转换:
    1 1 1 1 1 1 1 1
    128 64 32 16 8 4 2 1

  • 十进制转十六进制: 先转成二进制,四位一组,对着上面的值相加即可
  • 十进制转二进制:60 —00111100

5:原反补码(了解)

举例:01111000最左边的为最高位: 0:正数 1:负数正数:原反补都一样负数:反码是原码取反,但最高位符号位不变     负数的补码是反码的末位+1

举例:⦁ A:已知原码求补码: 0b10110100
⦁ B:已知补码求原码: 0b11101110

6:变量的概述 (非常非常非常重要)

变量:在程序运行过程,其值在一定范围内可以发生改变.     可以用来存放同一类型常量,可以重复使用     内存!定义变量的 要去内存申请空间--->数据类型

补充:软件是按照特定顺序的数据和指令的集合,数据存在内存,要去内存申请空间,用变量来申请内存空间,这个时候变量就可以存储数据
常量:

7:数据类型(非常非常非常重要)

数据类型分类:基本数据类型和引用数据类型基本数据类型(四类八种):        整数型 byte short int long         浮点型 float double        字符型 char        布尔型 boolean  (常量 true false)

范围: byte -128到127 1个字节
short 两个字节
int -2^31~2^31-1 4个字节
long 八个字节
float :四个字节
double:八个字节
char:两个字节
boolean:理论上1/8个字节
引用数据类型:类 接口 数组 枚举

8:定义不同数据类型的变量(非常非常非常重要)

格式一:
数据类型 变量名 = 初始化值;
格式二:
数据类型 变量名;
变量名 = 初始化值;
变量名:标识符
默认的整数类型 就是int数据类型
默认的小数类型 就是double数据类型
Long类型的注意点:在值后面加大写L,可以加l
float类型 注意点:值后面要加大写或者小写f

9:变量的注意事项(非常非常非常重要)

(1)同一作用域不能使用相同的变量名
作用域:注意指的是最近的大括号 强调!!
(2)变量在使用前必须先初始化(赋值)
如果不使用,也可以定义;
(3)一条语句可以定义多个变量

10:隐式类型转换(重要)

取值范围小的数据类型与取值范围大的数据类型进行运算,会先将小的数据类型提升为大的,再运算
注意:不只是byte这种数据类型才会,byte shot char 和int数据类型运算的时候,都会做类型提升

11:强制类型转换(重要)

int a = 10;
byte b = 20;
short c = 30;
b = (byte)(a+b);
注意:书写强制类型转换时候,记得要先把要运算的数据用小括号括起来,然后在前面加上强制类型转换的数据类型,这个也需要用小括号括起来
强制类型转换格式:
小的数据类型 变量名 = (小的数据类型)大的数据类型;
强制类型转换:不推荐

12:面试题(重要)

class Test1_DataTypeConversion {    public static void main(String[] args) {        //面试题:看下面的程序是否有问题,如果有问题,请指出并说明理由。        byte b1 = 3;        byte b2 = 4;        //byte b3 = b1 + b2;        /*        从两方面        1,byte与byte(或short,char)进行运算的时候会提升为int,两个int类型相加的结果也是int类型        2,b1和b2是两个变量,变量存储的值是变化,在编译的时候无法判断里面具体的值,相加有可能会超出byte的取值范围        */        //System.out.println(b3);        //byte b4 = 3 + 4;          //java编译器有常量优化机制        byte b4 = 7;        System.out.println(b4);    }}

常量优化机制: 在java内存里面有一个小小的常量池区域,里面存放着-128~127之间的数,如果你在赋值一个数给byte数据类型的时候,它会先去常量池里面找有没有这个数,如果有,编译通过,如果没有,编译不通过!

13:float 和long类型谁大?(了解)

结论:float 大于 long
原因:就因为底层存储结构不一样
byte,short,char < int < long < float < double

14:ASCII码表

大写字母和小写字母相差的32
/*    关于大小写字母转换的案例*/class Demo01 {    public static void main(String[] args) {        //注意:如果我们需要将大写转成小写的,只需要加32即可        System.out.println((char)('A'+32));    }}

15:字符串运算(非常重要)

class Demo4_DataTypeConversion {    public static void main(String[] args) {        //System.out.println('a' + 1);          //98,因为有ASCII码表,a字符对应的是int类型的97        //System.out.println((char)('a' + 1));        System.out.println("hello"+'a'+1);      //任何数据类型用+与字符串相连接都会产生新的字符串        System.out.println('a'+1+"hello");        System.out.println(" 5 + 5 = " + (5 + 5));    }}

总结:任意数据只要和字符串做运算都会变成新的字符串

16:关于char的数据类型

char数据类型的取值范围是多少?
答:0-65535
Java语言中的字符char可以存储一个中文汉字吗?为什么呢?
答:因为一个中文占用的是两个字节

算术运算符(非常重要)

⦁ 算术运算符有哪些?
+ - * / % ++ –
⦁ 使用算术运算符有哪些注意事项?
+ : 正号 加法运算 字符串连接符
/ : 整数运算,得出来都是整数,没有余数
%:求模,取余数 10 % 3 = 1; 10 % 2 = 0
需求:数789,让你求出 个位上的数,十位上的数,百位上的数
789 % 10 —>得出来是9
789 / 10 —>78 % 10 —>得出8
789 / 100—>得到的就是7

面试题(理解)

class Test1_Operator {    public static void main(String[] args) {        //第一题        /*int a = 10;        int b = 10;        int c = 10;        a = b++;                    //a = 10 ,b = 11        c = --a;                    //a = 9, c = 9                  b = ++a;                    //a = 10, b = 10            a = c--;                    //a = 9, c = 8                  System.out.println("a = " + a + ",b = " + b + ",c = " + c);*/        //第二题        /*int x = 4;        //      4   +   6+  60        int y = (x++)+(++x)+(x*10);        System.out.println("x = " + x + ",y = " +  y);*/        //第三题问哪句会报错,为什么         byte b = 10;        //b++;                  //b = (byte)(b + 1)        b = b + 1;              //当byte与int进行混合运算的时候,会提升为int类型,两个int相加的结果还是int,赋值给byte会损失精度        System.out.println("b = " + b);    }}

赋值运算符(重要)

= :基本赋值运算符
+= , -= *= /= %=

关系运算符(非常非常非常重要)

< == >= <= !=
特点:结果得出来的都是布尔类型,boolean 类型

0 0
原创粉丝点击