下面放复习的文档链接,如果有需要可以前往下载获取,这个仓库还有关于mysql、hadoop、python等的复习部分,并且每个文档有着对应的代码部分,链接如下: https://gitee.com/zhang-huile/LearnForJob/blob/master/java/javasepro/day02/java_day2.txt
Java语法的学习笔记
一、变量里的数据在内存中的原理
1.数据在计算机中底层都是怎么存储的?
数据在计算机中是以二进制的形式存储的。
2.如何快速算出一个数据的二进制表示?
除二取余法:把十进制的数除以2,余数为0则该位为0,否则为1。
3.计算机中表示的最小单元是什么?
计算机中最小的存储单元是位(bit)。位是计算机中最小的存储单位,可以用来表示0和1。一个字节(byte)由8个位组成,可以用来表示整数、字符、布尔值。
二、其他数据如何存储?
1.字符数据在计算机中怎么存储?
字符数据在计算机中是以ASCII码表中对应的数字的二进制形式存储的。
ASCII码是一个字符集,它规定了所有字符的二进制表示。
字符'A'对应的数字是65
字符'a'对应的数字是97
字符'0'对应的数字是48
2.图片和音频等文件的数据是怎么存储的?
文件数据在计算机中是以二进制形式存储的。
三、java语法:二进制、八进制、十六进制
1.二进制:
0b或0B开头,后面跟着数字0和1。
2.八进制:
0 开头,后面跟着数字0到7。
3.十六进制:
0x或0X开头,后面跟着数字0到9和A到F。
注:之前课程就学了,不过多赘述,简单看看就好
4.计算机表示数据的最小组成单元是:
字节 , 1B = 8b(bit)
在B的基础上,计算机发展出了 KB MB GB TB 等单位,方便人们更直观的看待计算机中的数据。
数据大小单位转换:
1B = 8bit
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
四、java语法:数据类型
1.基本数据类型:
4大类8种 (目前重点看这4大类,其他的后面会接触到)
1.整数类型:byte short int long
2.浮点类型:float double
3.字符类型:char
4.布尔类型:boolean
2.引用数据类型:
1.类:类实例化后的对象
2.接口:接口实例化后的对象
3.数组:数组实例化后的对象
3.java中数据类型之间的转换:
1.自动类型转换:小范围的类型自动转换为大范围的类型,比如int自动转换为long,float自动转换为double。
2.强制类型转换:将一个数据类型转换为另一种数据类型,需要使用强制类型转换符号(int)或(double)等。
3.字符串转换为数字:使用Integer.parseInt()或Double.parseDouble()方法。
4.数字转换为字符串:使用String.valueOf()方法。
4.java中数据类型分为几种(今天只学的)
基本数据类型:
1.整数类型:byte int short long
2.浮点类型:float double
3.布尔类型:boolean
4.字符类型:char
引用数据类型:
String
5.随便书写的整数、小数字面量,他们默认什么数据类型?
默认整数类型:int ,加上L或 l ,默认long类型
默认小数字面量:double ,加上F 或 f ,默认float类型
五、类型转换
1.什么是类型转换?
类型转换是指将一种数据类型转换为另一种数据类型。
2.java中类型转换的规则:
自动类型转换:小范围的类型自动转换为大范围的类型,比如int自动转换为long,float自动转换为double。
强制类型转换:将一个数据类型转换为另一种数据类型,需要使用强制类型转换符号(int)或(double)等。
字符串转换为数字:使用Integer.parseInt()或Double.parseDouble()方法。
数字转换为字符串:使用String.valueOf()方法。
3.各种类型的占比:
byte:1位,8个字节
short:2位,16个字节
int:4位,32个字节
long:8位,64个字节
float:4位,32个字节
double:8位,64个字节
char:2位,16个字节
boolean:1位,8个字节
4.为什么要进行类型转换?
存在不同类型的变量赋值给其他类型的变量时,需要进行类型转换。
5.什么是自动类型转换?
类型范围小的变量,可以直接赋值给类型范围大的变量,不需要进行类型转换。
6.表达式的自动类型转换是什么样的?
小范围的类型自动转换为大范围的类型。
7.表达式最终结果类型由谁决定?
最终类型由表达式中的最高类型决定。
8.表达式的有哪些类型转换是需要注意的?
byte short char 是直接转换成int类型参与运算的
9.什么是强制类型转换?
默认情况下,大范围类型的变量直接赋值给小范围类型的变量会报错!!
可以强行将类型范围大的变量、数据赋值给类型范围小的变量。
数据类型 变量 = (数据类型) 变量名;
10.强制类型转换有哪些需要注意的?
可能出现数据丢失
小数强制转换成整数是直接阶段小数,保留整数。
六、运算符
1.算数运算符有哪些
+ - * / %
2. / 需要注意的地方
整数除法:结果是整数,小数部分被舍弃。
3. + 除了做基本的数学运算,还有哪些功能?
可以在字符串中,作为连接符,其结果也是字符串,能算则算,不能算,作为连接符。
七、java语法:自增自减
1.自增自减运算符是什么,有什么作用,需要注意什么?
++ ,-- ; 对当前变量值 +1 或 -1 ,并返回当前值。
只能操作变量,不能操作字面量。
2.自增自减运算符放在前后有什么不同?
如果式单独使用放在前后无区别。
非单独使用:
放在前面:先自增或自减,再使用变量。 (先加【减】后用)
放在后面:先使用变量,再自增或自减。 (先用后加【减】)
3.自增自减扩展案例(计算题)。自己算
int c = 10;
int d = 5;
int result = c++ + ++c - --d + 1 + c-- ;
System.out.println(result);
System.out.println(c);
System.out.println(d);
输出结果:
31
11
4
八、java语法:赋值运算符
1.基本赋值运算符
= 就是从右往左看,先算右边的值,再赋值给左边的变量。
2.扩展赋值运算符
符号 用法 作用 底层代码形式(为了使运算前后数据类型一致,隐含强制类型转换)
+= a+=b 加后赋值 a =(a的类型)(a + b);
-= a-=b 减后赋值 a =(a的类型)(a - b);
*= a*=b 乘后赋值 a =(a的类型)(a * b);
/= a/=b 除后赋值 a =(a的类型)(a / b);
%= a%=b 取模(余)后赋值 a =(a的类型)(a % b);
3.扩展运算符的作用是什么?有什么特点
可以对变量进行运算,并将运算结果赋值给变量。
扩展运算符自带强制类型转换。
九、关系运算符
1.关系运算符有哪些?
== 、 != 、 > 、 < 、 >= 、 <=
2.关系运算符的作用是什么?
关系运算符用来比较两个值,返回一个布尔值。
3.关系运算符的特点是什么?
关系运算符的特点是比较两个值,返回一个布尔值。
关系运算符的结果只能是true或false。
关系运算符的优先级低于算术运算符。
十、逻辑运算符
1.逻辑运算符有哪些?
符号 作用 例子 逻辑运算
& 逻辑与 a&b 只有a和b都为true,结果才为true
| 逻辑或 a|b 只要a或b有一个true,结果就为true
! 逻辑非 !a 如果a为true,结果为false,反之为true
^ 逻辑异或 a ^ b 只有a和b不同时为true,结果才为true
&& 短路逻辑与 a && b 只有a为true,才会计算b,否则结果为false;
过程不同:当左边为False,右边不计算。
|| 短路逻辑或 a || b 只要a为true,结果就为true;
过程不同:当左边为True,右边不计算。
注意:
在java中,"&"、"|" :无论左边是false还是true,右边都要执行。
由于 "&&" 、 “||” 运算效率更高,所以在开发中用的更多。
2.逻辑运算符的作用是什么?
逻辑运算符用来对布尔值进行逻辑操作,返回一个布尔值。
十一、三元运算符
1.三元运算符有什么?
符号 作用 例子 逻辑运算
a? b : c 三元运算符 a? b : c 如果a为true,返回b,否则返回c
2.运算符的优先级是什么?
三元运算符的优先级最低,低于关系运算符、逻辑运算符、赋值运算符。
&& 高于 || ,高于关系运算符、逻辑运算符、赋值运算符。
括号的优先级最高
十二、java语法:API介绍、Scannner:录入用户键盘输入数据
1.API介绍:
API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,它们能让应用程序与操作系统或其他软件进行交互。
API是一套接口,应用程序调用API中的函数,就能实现一些功能。
即:java自己写好的程序,可以直接使用。
java为自己写好的程序提供了相应的程序文档说明书(API文档)
2.使用Scanner接收用户键盘输入的数据,需要三个步骤。
1.导入Scanner类。
2.创建Scanner对象。
3.调用Scanner对象的nextLine()方法,接收用户输入的数据。
3.API文档是什么?
API文档是一份详细的说明书,它详细描述了API的功能、用法、参数、返回值等。
4.java程序如何实现接收用户键盘输入的数据?
步骤:
1.导入Scanner类。
import java.util.Scanner;
2.创建Scanner对象。
Scanner sc = new Scanner(System.in);
3.调用Scanner对象的nextLine()方法,接收用户输入的数据。
String name = sc.next();
int age = sc.nextInt();