JavaNote
2024-07-03 17:34:27 2 举报
AI智能生成
登录查看完整内容
为你推荐
查看更多
抱歉,暂无相关内容
对Java知识进行梳理
作者其他创作
大纲/内容
认真听课 都能学会 都能学好
文档注释的格式
String--->其他类型用parse方法
String-->char
两个数的比较相等用if(Math.abs(n1-n2)<=n);两个数差值的绝对值,在某个范围内比较,符合条件则认为它们近似相等,浮点型数字都是近似值
int age = myTools.nextInt();
System.out.println(\"请输入你的年龄\");
char gender = myTools.next().charAt(0);
System.out.println(\"请输入你的性别\");
Scanner myTools = new Scanner(System.in);
import java.util.Scanner;
键盘输入
随机生成整数((int)(Math.random()));[范围是大于等于0,小于1]
变量名.euqals(\"丁真\");
方法1
\"丁真\".equals(变量名);
方法2
比较两个字符串地址内容相同equals
在for循环外定义一个 int index = -1或者除0-数组范围内的数字,如果满足条件就在条件下 写上循环变量迭代index++;在for循环外,输出if(index == -1) {System.out.println(\"您输入的数字不存在\");}
index(索引)
在for循环外定义int court = 0;如果满足条件就循环变量迭代court++;在for循环结束后输出,if(court == 0) {System.ou.println(\"您输入的数字不存在\");}
court(计数器)
判断输入的数是否属于数组的数,不属于的话输出不属于的方法
System.ou.println(\"对象1acry的hashCode\" + acry.hashCode());
输出调用hashCode方法
Animal acry = new Animal(\"大米\",19);
new 一个对象
构造器
info方法
比较this和方法还有new对象数据空间是否相同/地址是否相同
通过使用哈希输出对象/方法的哈希值来比较地址/数据空间是否相同
效果图展示
发现它们的hashCode码相同说明它们是同一数据空间,近似认为它们是同一个地址
当方法有返回boolean值时,可以直接返回条件
细节
程序定义
Java历史
Java运行机制及开发步骤
JDK、JRE、JVM的关系
系统配置与账户配置的区别
为什么要配置环境变量Path及作用
初学JAVA易犯错误[5]
JAVA的开发注意事项[8]
Java代码规范[7]
单行 //
多行 /* */
方法:javadoc -d d:\\Cute -author -version hello.java
文档注释 /** */
注释
dir
cd/D d:
cd d:23
tree
rd
md
del
copy
type
echo
DOS命令
\\t
\
\\\\
\\\"
\\'
转义字符(字表位)
绝对路径
相对路径
相对路径与绝对路径
Java概述[12]
程序
变量
定义
变量使用的基本步骤[3]
使用注意事项[6]
细节【4】
byte[1]、short[2]、int[4]、long[8]
数值型[4]
细节【5】
float[4]、double[8]
浮点型[2]
存储与读取
只存放一个字符
字符型【Char】[2]
细节【2】
只存放True/False
布尔型【boolean】[1]
基本数据类型[8]
类(class)
接口(interface)
数组【】
引用数据类型
Java数据类型[2]
包1
接口
字段
构造方法
方法
类
异常
包2
包n
jdk
jdk类组织形式
包--->类-->字段/方法/构造方法
如:Arraylist 、 Math、、next
通过索引搜索对应的类
通过包找到对应的类在通过类找到对应的字段方法
使用
JavaAPI文档使用
二线
细节[5]
自动数据类型转换
细节[4]
强制数据类型转换(有精度损失/溢出)
变量 + “”
基本-->String
用到方法
String--基本
但字符串不能是英文,字符串-->字符,默认输出第一个字符
String--->char
声明变量-->使用变量
基本数据类型转换
数据类型转换
变量[6]
+
-
*
/
%
++i
i++
算术运算符[7] AritmeticOperator
>
<
==
>=
<=
!=
instanceof
关系运算符(比较)RelationalOperator
语法
短路与&&
逻辑与&
与
短路或||
逻辑或|
或
取反!
逻辑异或^
其他
逻辑运算符 LogicOperator
区别
+=
-=
*=
/=
%=
赋值运算符 AssignOperator
条件表达式 ? 表达式1 : 表达式2
基本格式
三元运算符 TernaryOperator
主要符
26字母大小写,数字0到9 ,_ 和$
public static class.......
Character:所有字母都为小写
关键字
byValue、cast、future、 generic、 inner、 operator、 outer、 rest、 var 、 goto 、const
会在以后的Java版本中用到
保留字
关键字与保留字
不能以关键字或保留字(goto)命名标识符,但可包含如:hhString cutePublic eeclass
不能数字开头
不能有空格
Java严格区分大小写 长度无限制
规则[5](必须遵守)
包名:所有字母都用小写
类名和接口名用“大驼峰”-->每个英语单词的首字母要大写
变量名和方法名用“驼峰法”-->小驼峰-->开头的英语单词用小写,后面的英语单词首字母用大写
常量名所有字母用大写,多个单词用__下划线来连接
规范[4](更专业)
标识符
二进制-->十进制
八进制-->十进制
十六进制-->十进制
其他进制转十机制(乘)
十进制-->二进制
十进制-->八进制
十进制-->十六进制
十进制转其他进制(除)
ob11(3)010(2)101(5) => 0325
将三个数如101转成10进制数再相加
将二进制数每3个位一组(从右往左)
BIN-->OCT
ob1101(D)0101(5) = 0xD5
将四个数 转成10进制再相加
将二进制数每4个位一组(从右往左)
BIN-->HEX
二进制转其他进制
02(010)3(011)7(111) = 0b10011111
将八进制数每 1 位,转成对应的一个 3 位的二进制数即可
OCT-->BIN
0x2(0010)3(0011)B(1011) = 0b001000111011
将十六进制数每 1 位,转成对应的一个 4 位的二进制数即可
HEX-->BIN
其他进制转二进制
进制(程序员的基本功)
方法:数字 * X进制的(位数-1)次方,再求和(相加)
从右往左判断位数 最右为第一位,单独抽出个位数字
除以X(几进制就为几),直至商为0 余数倒着读 如:余数顺序1010,真正顺序0101
从右往左,依次抽出一个数字
二进制最高位为符号位。0表整数,1表负数(倒着来看)
正数的原码、反码、补码都一样(三码合一)
负数的反码=原码符号位不变,其他位取反(0-->1 .1-->0)
负数的补码=负数的反码+1 (满二进1原则二进制中) 负数的反码=负数的补码-1
0的补码和反码为0
先得到补码 再进行运算
计算机运算时(+ - * / >> >>> <<) 用的是补码
查看运算结果 看的是原码
原码,反码,补码[7]必须背下来
两个数为1,结果才为1,否则为0
按位与 &
两个数有一个为1,结果为1,否则为0
按位或 |
一个数为0,另一个数为1.则结果为1,否则为0
按位异或 ^
按位取反 ~
1
3/2 /2 /2 /2
3>>4
01101011(补码)向右移动5位-->011-->00000000 00000000 00000000 00000011-->符号位为0 正数 三码合一 原码--> 00000000 00000000 00000000 00000011 // 11(BIN)-->3(DEC) 符号位为0 为正数 结果为+ 3
符号位不变,低位溢出 符号位补高位
算数右移>>
3*2 *2
3<<2
00000011
算数左移<<
低位溢出,高位补 0
正数情况与算数右移>>相同
逻辑右移>>>
2
位运算符
运算符[5]
先声明变量,赋值,再使用变量
直接由上至下执行,无判断
顺序控制
if
单分支
if - else if
双分支
if - else if ..... else
多分支
程序有选择的执行
分支控制(if--else)
for(循环变量初始化;循环条件;循环变量迭代) { 循环体;}
基本语法
for循环
算个数和总和的位置选放区别
循环变量初始化;while(循环条件) {循环体;循环变量迭代;}
while循环
do {循环体;循环变量迭代;}while(循环条件);
do.while循环
循环控制(难点)
99乘法表
金字塔
多重循环(难度,重点)
控制
程序控制结构
数据类型[] 数组名 = {};
数据类型 数组名[] = {};
已经知道具体元素,元素不多的情况
静态初始化
数组名 = new 数据类型[下标]
使用变量 new一个空间
数据类型[] 数组名;
声明数组
动态初始化1
数据类型[] 数组名 = new 数据类型[]
声明数组使用数组一步到位
动态初始化2
一维数组的基本运行原理
扩容
缩减
数组
一维数组
思路不清晰Date:2024/6/18
int-->double满足自动类型转换
String[] num2 = {\"jAkc\
数组的数据类型必须是同一数据类型 或者可以自动类型转换的类型
声明数组,使用数组
数组的下标/索引从0开始
数组的数组类型可以是自动类型转换类型也可以是引用数据类型,但它们不能混用
整形(byte,short,int,long)默认值0
浮点型(float,double) 默认值0.0
字符型(char)默认值 \\u0000
字符串(String)默认值 null
布尔型 (boolean)默认值 false
如果声明数组,没有赋值有以下五种情况
遍历for循环
错误,因为下标/索引是从0开始的创建对象时只有2个元素,所以输出score[2]会出现异常
System.out.println(score[2]);
score[0] = 23.2; score[1] = 78.9;
double[] score = new double[2]//创建数组
数据的下标必须在指定范围内使用
数组的数据类型是引用型,数据型数据是对象(object)
细节[7]
第一次是arr遍历二维数组的元素(每一个一维数组)
第二次遍历一维数组的元素
需要遍历两次
二维数组的每一个元素都是一个一维数组
因为还没有new数据空间
二维数组分配了3给元素(一维数组)但元素的值为null
数据类型[][] arr = new 数据类型[3][];
for(int j = 0;j < arr[i].length;j++) {arr[i][j]}
遍历一维数组的元素
所以先arr遍历二维数组的每一个元素
arr[i].length代表每个一维数组所含的元素
arr.length代表一个二维数组的长度/大小
for(int i = 0;i < arr.length;i++) {}
二维数组中有三个一维数组每个一维数组有四个元素
arr = new int[3][4];
int[][] arr;
再new二维数组的空间
声明二维数组
方式
一个二维数组有4个元素(4个一维数组)每个元素有6个值
1.静态初始化-->已知二维数组的元素和元素所对应的值
2.for循环arr遍历二维数组元素
for(int i = 0;i < arr.length;i++) {for(int j = 0;j < arr[i].length;j++) {}}
3.for循环遍历一维数组元素
4.打啵for循环遍历输出
思路分析
TwodimensionArray01
TwodimensionArray02
此时的二维数组的一维数组是空,没有赋值也就没有地址
int[][] arr = new int[3][];
1.动态初始化-列数不确定的数组
for(int i = 0; i < arr.lenghth;i++) {arr[i] = new int[i + 1];}
2.for循环arr遍历二维数组的元素
for(int i = 0; i < arr.lenghth;i++) {arr[i] = new int[i + 1];for(int j = 0;j < arr[i].length;j++){arr[i][j] = i+1}}
3.for循环遍历一维数组的元素,此时一维数组有地址分配了空间但没有元素
4.for循环遍历输出
一个二维数组有3个一维数组 每个一维数组的元素为1 / 2 / 3
内存分析法
TwodimensionArray03
因为二维数组的每一个元素都是一个一维数组,是引用数据类型,如果写成100变成基本数据类型int型,不满足二维数组的定义
最后一个一维数组的元素不能写成100的原因
解释
TwodimensionArray04
1.创建一个元素数组
2.arr遍历二维数组的元素(一维数组)
3.遍历一维数组的元素
化繁为简
先死后活
TwodimensionArray05
YangHui
案例
二维数组的底层原理
二维数组
子主题
定位
4
6
Homework
内存中分配了26个char类型的空间
char[] elements = new char[26]
char型
当数组分配了下标时它就是创建时的数据类型
element[i]
规律法反转
冒泡排序
i 的长度为 arrNew.length(5);j的长度为 arr.length(4)
忘记了,就用内存分析法分析
遍历数组元素时,扩容/复制,条件写大范围
无论是一维数组还是二维数组,for循环遍历arr的元素的下标开始必须为0
int age = 17;
给属性直接赋值
main类new类对象,然后调用改类属性赋值
属性初始化
可以先不赋值属性,后面再赋值
属性
某个事物的特点
类的实例化对象
创建一个对象
内存中的调用机制
对象
属性可以是基本数据类型也可以是引用数据类型
访问修饰符(protected、private、public、默认) 数据类型 属性名
属性如果不赋值有默认值
属性/成员变量/字段field-->全局变量
使用变量durz = new Donkey();
声明对象Donkey durz;
Donkey durz = new Donkey();
声明对象使用对像一步到位
new对象的方法
类和对象在内存中的访问机制
对象名.属性
访问属性方法
成员方法
类与对象(oop)
第一部分
0 条评论
回复 删除
下一页