Java重点学习笔记

时间:2021-11-22 15:40:10

                             Java重点学习笔记

写在前面的话:

因为在编程学习的过程,我发现学习一个新的知识点的时候,无论你当时多么的认真思考和仔细的论证,如果仅仅是敲写了代码,并且在脑海梳理了代码的步骤和原理,而不是通过记笔记的方式,很快这些知识点就被忘记的一干二净,你会发现人的记忆是很差的,就像你可能记不起来前天中午吃了什么午饭。所以任何知识点学习,尤其是通过零星的网络资源收集而来,你必须通过某种自己的形式,把这些知识点以文字记录下来,而最好的方式就是当下的笔记+最后的总结博客,所以促使我更加看着博客的重要性,它主要的工作并不是炫耀你懂的内容,而是的学习后成果的记录。

一:Java语言

Java语言的创始人詹姆斯.高斯林JDK的平台版本分为JavaSE和JavaME和JavaEE三种。JVMjava虚拟机):保证了java语言的跨平台但需要注意的是java语言是跨平台的,jvm不是跨平台的。

JRE(Java程序的运行环境:包括JVM和核心类库

JDKJava程序的开发环境):包括JRE + 开发工具。

二:Java编译工具Jdk的安装与卸载:

(1)下载

到官网。

(2)安装

傻瓜式安装。

 

建议:

A:在D盘建立一个目录:develop

B:傻瓜式安装,修改安装的路径到d盘的develop

C:路径如下

JDK:

D:\develop\Java\jdk1.7.0_72\

JRE:

D:\develop\Java\jre7\

(3)卸载

A:控制面板

B:360之类的软件卸载工具

三:配置path环境变量

    创建新的变量名称:

变量名:JAVA_HOME

变量值:D:\develop\Java\jdk1.7.0_72

修改path变量:

%%引用JAVA_HOME即可。

%JAVA_HOME%\bin;以前的path内容

四:开发第一个Java程序(HelloWorld)

public class HelloWorld {

public static void main(String[] args) {

System.out.println("helloworld");

}

 

}

五:数据类型分类:

基本类型:48种。

引用类型:类,接口,数组。

基本类型:

    整数 占用字节       范围

byte            1 -128 ~ 127

short        2 -2^15 ~ 2^15 - 1

int        4 -2^31 ~ 2^31 - 1

long            8 -2^63 ~ 2^63 - 1

1k空间:

1k = 1024 byte

byte = 8bit

   浮点数

float           4 -3.403E38 ~ 3.403E38

double       8 -1.798E308 ~ 1.798E308

   字符

char           2

注意:Java采用的是unicode编码。所以java中每一个字符占用两个字节。这样就可以存储一个汉字了。

   布尔

boolean      1      true,false

 

注意:

A:默认整数是int类型

B:默认浮点数是double类型

C:如果要定义long类型的变量,建议加L或者l。建议加L

D:如何要定义float类型的变量,必须加F或者f。建议加F

六:++,--运算符

    作用:++就是加1,--就是减1

    自增自减运算符

 

++,--在运算的时候,可以放在操作数的前面,也可以放在操作数的后面

A:单独使用

没有区别

B:参与其他操作使用

后面:先操作,再自增

前面:先自增,再操作

举个例子:

public class OperatorTest {

public static void main(String[] args) {

int a = 10;

int b = 10;

int c = 10;

 

a = b++;//a=10,b=11,c=10

c = --a;//a=9,b=11,c=9

b = ++a;//a=10,b=10,c=9

a = c--;//a=9,b=10,c=8

System.out.println(a);

System.out.println(b);

System.out.println(c);

}

 

}

 

七:逻辑运算符

&,|,!,^

&&,||

注意:

    逻辑运算符用于连接关系表达式

最常用的逻辑运算符:!,&&,||

&&&:

结果一样,但是&&具有短路效果,左边如果是false,右边不执行。

|||:

结果一样,但是||具有短路效果,左边如果是true,右边不执行。

举个例子:

 

public class Demo2 {

public static void main(String[] args) {

/**

 * &&||&|的区别?

 * 从执行结果上来说:两者没有任何其别

 *

 * 区别:&&||会有一个短路效果

 */

int a = 10;

int b = 20;

int c = 30;

System.out.println((a>c)&&(a>b));//false&&false=false

System.out.println((a<c)&&(a<b));//true&&true=true

System.out.println((a>c)&&(a<b));//false&&true=fasle

System.out.println((a<c)&&(a>b));//true&&false=false

 

System.out.println("-----------------------");

//|运算两边连接的布尔值,只要有一个为true就为true

System.out.println((a>c)||(a>b));//false||false=false

System.out.println((a<c)||(a<b));//true||true=true

System.out.println((a>c)||(a<b));//false||true=true

System.out.println((a<c)||(a>b));//true||false=true

System.out.println("----------------------");

int x = 3;

int y = 4;

//System.out.println(x++>3&&y++>4);

//false&&=fasle,&&会存在一个短路效果,前面链接的布尔值为fasle

//整体就为fasle,所以后面的判断不执行

System.out.println(x);//4

System.out.println(y);//4

System.out.println(x++>3||y++>4);

//||运算链接的布尔值,如果前面的布尔值为true,连接的整体结果就为true,后面的不执行

System.out.println(x);//4

System.out.println(y);//5

}

 

}

八:流程控制语句

A:顺序结构(没有基本格式,从上往下依次执行)

B:选择结构(有格式)

if

switch

C:循环结构(有格式)

for

while

Do...while

九:if语句

三种格式。

1if语句格式1

if(比较表达式) {

     语句体

}

 

执行流程:

首先判断比较表达式看其结果是true还是false

如果是true就执行语句体

如果是false就不执行语句体

if语句的注意事项:

A:比较表达式无论简单还是复杂,结果必须是boolean类型

B:一般来说:

有左大括号就没有分号,有分号就没有左大括号

 

2if语句格式2

if(比较表达式) {

     语句体1;

}else {

     语句体2;

}

 

执行流程:

首先判断关系表达式看其结果是true还是false

如果是true就执行语句体1

如果是false就执行语句体2

3if语句的三种格式:

格式1:适合做一种情况的判断

格式2:适合做二种情况的判断

格式3:适合做多种情况的判断

 

if语句格式3

if(比较表达式1) {

     语句体1;

}else  if (比较表达式2) {

 语句体2;

}

else {

 语句体n+1;

}

 

执行流程:

首先判断关系表达式1看其结果是true还是false

如果是true就执行语句体1

如果是false就继续判断关系表达式2看其结果是true还是false

如果是true就执行语句体2

如果是false就继续判断关系表达式…看其结果是true还是false

如果没有任何关系表达式为true,就执行语句体n+1

举个例子:

public class IfDemo6 {

public static void main(String[] args) {

/**

 * 获取三个数据中的最大值

if语句的嵌套。

if() {

if语句

}

 */

int a = 10;

int b = 20;

int c = 30;

if (a>b) {

//a

if (a>c) {

System.out.println(a);

}else {

System.out.println(c);

}

}else {

//b

if (b>c) {

System.out.println(b);

}else {

System.out.println(c);

}

}

}

 

}

十:循环语句组成

A:初始化语句

一条或者多条语句,这些语句完成一些初始化操作。

B:判断条件语句:

这是一个boolean表达式,这个表达式能决定是否执行循环体。

C:循环体语句

这个部分是循环体语句,也就是我们要多次做的事情。

D:控制条件语句

这个部分在一次循环体结束后,下一次循环判断条件执行前执行。

通过用于控制循环条件中的变量,使得循环在合适的时候结束。

1for循环格式:

for(初始化语句;判断条件语句;控制条件语句) {

循环体语句;

}

 

执行流程:

A:执行初始化语句

B:执行判断条件语句

如果是true:就继续执行。

如果是false:就结束循环。

C:执行循环体语句

D:执行控制条件语句

E:回到B

 

执行次数:

A:初始化语句

只执行一次

B:判断条件语句

一次以上

C:循环体语句和控制条件语句

0次以上

举个例子:

public class ForDemo6 {

public static void main(String[] args) {

/**

 * 18.需求:求5的阶乘

规则:

n! = n*(n-1)*(n-2)*...*3*2*1

 */

int sum = 1;

for(int i = 1;i<=5;i++){

//累乘

sum*=i;

}

System.out.println(sum);

}

 

}

2while循环的格式:

while(判断条件语句) {

循环体语句;

}

 

变形格式:

初始化语句;

while(判断条件语句) {

循环体语句;

控制条件语句;

}

 

执行流程:

A:执行初始化语句

B:执行判断条件语句

如果是true:就继续执行。

如果是false:就结束循环。

C:执行循环体语句

D:执行控制条件语句

E:回到B

举个例子:

public class WhileDemo {

public static void main(String[] args) {

//1.请在控制台输出10"HelloWorld"

//初始化语句

int i = 0;

//条件判断语句

while(i<10){

//循环语句

System.out.println("helloworkd");

//控制条件语句

i++;

}

}

 

}

 

for循环和while循环的区别

控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,

while循环结束还可以继续使用,如果你想继续使用,就用while

否则推荐使用for。原因是for循环结束,该变量就从内存中消失,能够提高内存的使用效率

3do...while的格式:

do {

循环体语句;

}while((判断条件语句);

 

变形格式:

 

初始化语句;

do {

循环体语句;

控制条件语句;

}while(判断条件语句);

 

执行流程:

A:执行初始化语句

B:执行循环体语句

C:执行控制条件语句

D:执行判断条件语句

如果是true:就继续执行。

如果是false:就结束循环。

E:回到B

举个例子:

public class DoWhile {

public static void main(String[] args)

//使用do...while循环打印诗词helloworlkd

int i  = 0;

do{

System.out.println("helloworld");

i++;

}while(i<10);

}

 

}

 

4三种循环的区别

A:dowhile循环至少会执行一次循环体。

B:for循环和while循环只有在条件成立的时候才会去执行循环体

  他们是可以相互转换的。

 

我们在使用循环的时候到底该选择谁呢?

优先考虑for循环,再考虑while循环,最后考虑dowhile循环。

十一:breakcontinue的用法

     break

      使用场景:A:在选择结构switch语句中

        B:在循环语句中

 

遇到break,就中断整个循环。

默认情况下,break只能中断它所属的那个循环。

      continue  

      使用场景:在循环语句中

          遇到continue, 意味着退出本次循环。