#java基础学习总结
- DOS界面操作:主要就是cd。补全是table,查看文件是dir。编译java文件是:java xx.java。运行是:javac xx。
- jvm:(java virtual machine)跨平台虚拟机,jvm本身不具有跨平台性。
- jre:运行环境。
- jdk:开发工具。
- 他们仨的关系:(jdk+运行类库)<(jre+编译器等开发工具)<jvm。(这个存疑,我也不知道在哪看的)
- java关键字:就那些
- java标识符:不能以数字开头,不能是关键字。主要是:类名,方法名(小驼峰),变量名(小驼峰)。
- java的常量:分类一堆,有字符串常量,整数常量,浮点数常量,字符常量,布尔常量,空常量。
- java基本数据类型:分类也是一堆。整数型:byte,short,int,long。浮点型:double,float。字符型:char。布尔型:boolean。
- 基本数据类型得知道:他们的取值范围,可以看看表。主要是为了定义变量赋值的时候不超过那个范围,还有就是为了强制类型转换的时候能转。还得知道:他们的字节数。为啥要知道我也不知道。
- 自动类型转换:就是小的转大的。比如int转成long。这个没啥格式,直接写就完了,比如说long i=20;。
- 强制类型转换:就是大的转小的。小的装不了大的那么多数就会造成精度损失。格式是:小类型 小变量名 = (小类型) 大数。
- 有一个神奇的,就是byte,short,char能发生数学运算,char一个啥+1居然能算出来,当然是用ASCII码算的。因为他们三算的时候会被自动提升为int类型。
- ASCII码我目前没觉得有啥用,就是’0’是48,'A’是65,'a’是97。还有一个Unicode表,这个还带着中文,更感觉不到有啥用了,'中’是20030。
- java引用数据类型:字符串,类,数组,接口,lambda(这啥我也不知道)。(这个才是学习的大头)。
- 变量:变量就是能变的量。定义很简单,数据类型 变量名=数据值;或者你先不给值:数据类型 变量名;就行了。但是没赋值的变量不能直接使用。唯一要注意的:变量使用不能超过他的作用域。
- 运算符:这个早七早八学了一堆。
- 分类是:算数运算符:加,减,乘,除,取模,自增运算,自减运算。
- 赋值运算符:等于(=),加等于,减等于,乘等于,除等于,取模等于。
- 比较运算符:大于,小于,相等(==),大于等于,小于等于,不相等(!=)。
- 逻辑运算符:与(&&),或(||),非(!)。
- 三元运算符:没啥,就是三个数据才能操作的运算符,自增自减取反就是一元运算符,加减乘除啥的就是二元运算符。格式和一个if语句一样的:数据类型 变量名称 = 条件判断?表达式1:表达式2;就是条件判断是true就是表达式1,把她赋给左边的变量,反之则表达式2。
- 方法定义:pubulic static void 方法名(){ };(为什么要这样写格式,不一定啊,忽略吧)
- 方法调用:方法名();
- jdk9新特性:jshell(没啥用,我也不知道为什么要学这个)。
- 流程:选择语句:if,switch。循环语句:for,while,do……while。
- 这几个语句到处都有格式,就不写了。
- break:用在switch语句,一旦执行立即结束。用在循环语句中,一旦执行立即结束。
- continue:一旦执行,立刻跳过当前当前循环剩余内容,开始下一次循环。
- 这俩应该是有应用环境举例的,但是我不记得了,好像一直用break。(存疑吧?????????????)。
- 死循环:while(true){ };(存疑吧??????????)
- IDE:集成开发环境。
- 开发的快捷键(这个还得慢慢补充):
- Alt+enter (导包,修正代码)
- Ctrl+Y(删除所在行)
- Crtl+D(复制并插入当前光标下)
- Ctrl+Alt+L(格式化代码)(亲测无用,我也不知道咋回事,存疑?????)
- Ctrl+/(单行注释)
- Ctrl+shift+/(多行注释)(这个我都没用过)
- Alt+Ins(自动生成getset方法,构造方法,toString方法等)
- Alt+shift+上下箭头(移动当前代码行)(这个也没用过)
- Ctrl+Alt+F(提升变量作用域)(这个存疑,没用过)
- Ctrl+Alt+M(代码块抽取)
- psvm(main函数)
- sout(输出啥啥)
- Alt+4(看运行结果)(还没试过)
- shift+f6(选中多个相同变量)
- Ctrl(到jdk)
- fori(写一个for语句)
- 方法定义:修饰符 返回值类型 方法名称(参数类型 参数名称……){
方法体
return 返回值;
} - 修饰符:public,protected,(default),private。
- static和final算不算修饰符啊(???????)
- 返回值类型:方法最终产生的数据结果是什么类型。
- return作用:第一停止当前方法,第二将后面的返回值还给调用处。返回值必须和最开始定义的返回值类型保持相同。
- 方法三要素:返回值类型,方法名称,参数列表。
- 方法的三种调用格式:
第一单独调用:方法名称(参数);
第二打印调用:sout(方法名称(参数));
第三赋值调用:数据类型 变量名称 = 方法名称(参数); - 方法调用的四个步骤:
找到方法
参数传递
执行方法体
带着返回值回到方法调用处 - 一个方法中可以有多个return语句,但只有一个return语句能同时被执行。
- 方法重载(Overload):只需要记住一个方法名称就可以实现多个功能
- 数组是一个容器,可以存放多个数据值
- 数组的初始化有两种:
动态初始化(指定长度)
数据类型【】 数组名称 = new 数据类型【数组长度】
静态初始化(指定内容)
数据类型【】 数组名称 = new 数据类型【】{元素1,元素2,……}
省略版:数据类型【】 数组名称 = {元素1,元素2,……} - 直接打印数组名称,得到的是数组对应的,内存地址哈希值。
- 数组索引值从0开始。
- java内存需要分成5个部分:
- 栈(Stack):存放局部变量,方法的运行在栈里。
- 堆(Heap):new出来的东西在堆当中,堆里面的东西都有地址值和默认值。
- 方法区(Method Area):存储.class相关信息
- 本地方法栈(Native Method Stack):与操作系统相关
- 寄存器(PC Register):与CPU相关
- 越界异常是索引编号写错了。
- 数组必须new舒适化才能使用,不然空指针异常。
- 获取数组的长度:数组名称.length。
- 遍历数组就是对他的元素进行逐一处理(数组名称.fori)
- 数组元素反转:给一个第三者temp。让a=temp,b=a,temp=b。
- 什么时候停止交换:min<max.
- 数组可以作为方法的参数(传递地址)。
- 数组可以作为方法的返回值(返回地址)。
- 面向对象:定义一个类,类里面有成员变量(属性)和成员方法(行为)。
- 成员方法不要写static关键字。
- 一个类一般不能直接使用,要先创建一个方法