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 类型
- JAVASE第2天笔记
- JAVASE第26天笔记
- JAVASE第3天笔记
- JAVASE第4天笔记
- JAVASE第5天笔记
- JAVASE第6天笔记
- JAVASE第6天笔记
- JAVASE第7天笔记
- JAVASE第8天笔记
- JAVASE第9天笔记
- JAVASE第10天笔记
- JAVASE第11天笔记
- JAVASE第12天笔记
- JAVASE第13天笔记
- JAVASE第14天笔记
- JAVASE学习笔记第5天
- JAVASE学习笔记第6天
- JAVASE学习笔记第7天
- Linux上不错的EPUB阅读软件
- python之re模块
- Hibernate 的七种映射关系
- 删除链表中间节点
- 键盘录入两个文件路径,将其中一个文件夹中的所有的文件复制到另一个文件中
- JAVASE第2天笔记
- Lesson 11: 绘制三角形
- 简单小程序敲着练手额~
- JAVASE第3天笔记
- JAVASE第4天笔记
- JAVASE第5天笔记
- 动态规划总结
- JAVASE第6天笔记
- install salt & initial configuration(centos7)