(建议收藏)Java基础知识笔记(详细)

123 阅读8分钟

1.集成开发环境

IDEA是一个专门针对Java的集成开发工具(IDE),由Java语言编写。所以,需要有JRE运行环境并配置好环境变量。它可以极大地提升我们的开发效率。可以自动编译,检查错误。

2.创建项目

创建项目-创建模块-创建包-创建类 (1)创建一个工程
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/3d6afb231cf44bf58f4280c671f4de2a~tplv-k3u1fbpfcp-zoom-1.image)
(2)jdk版本我这里是1.7的
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/c8a0bdf0d0ed4384ad63a6ef4bd09215~tplv-k3u1fbpfcp-zoom-1.image)
(3)我命名为java_Web
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/7766c9d91f4d4993affa47bdfa2ad653~tplv-k3u1fbpfcp-zoom-1.image)
(4)创建一个Module
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/ab465d575517421cb35437d623479112~tplv-k3u1fbpfcp-zoom-1.image)
我命名为day01
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/cbadec5ff7574d1aba064c2b7ccea857~tplv-k3u1fbpfcp-zoom-1.image)
(5)创建包和类
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/1b03eb95f5164c0382b4b3c670043493~tplv-k3u1fbpfcp-zoom-1.image)

3. 编写程序

Java第一个程序
package com.baidu.demo01;public class Hello {    public static void main(String[] args) {        System.out.println("HelloWorld");    }}
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/b63fcef587184095b1209d504464a1a8~tplv-k3u1fbpfcp-zoom-1.image)

4.运算符

1,算数运算符 +,-,*,/,%,++,–。
package com.baidu.yunsuanfu;public class Demo {    public static void main(String[] args) {        int a=10;        System.out.println("a:"+a);        int b=++a;        int c=a++;        System.out.println(b);        System.out.println(c);    }}

2,关系运算符
!=,+=,-=,*=,/=,==,>,<,>=,<=

package com.baidu.yunsuanfu;public class Demo {    public static void main(String[] args) {        int a=10;        a+=20;        System.out.println(a);        System.out.println("------------------------------");        short b=5;        b+=5;        System.out.println(b);        System.out.println("------------------------------");        int d=10;        int c=20;        System.out.println(d = c);        System.out.println("------------------------------");        int x=10;        int y=20;        int z=30;        System.out.println(x == y);        System.out.println(x >= y);        System.out.println(x <= y);    }}
3,逻辑运算符 & ,| ,&& ,^,!
package com.baidu.yunsuanfu;public class Demo {    public static void main(String[] args) {        int a=3;        int b=4;        int c=5;        //&结果中有falsefalse        System.out.println(a>b&(a>c));//false & false        System.out.println("-------------------------");        //|只有结果有truetrue        System.out.println((a>b)|(a>c));//false | false        System.out.println("-------------------------");        //^相同为false, 不同为true        System.out.println((a>b)^(a>c));//false ^ false        System.out.println("-------------------------");        //!取反        System.out.println((a>b));//false ---->  true        System.out.println("-------------------------");        //&&有falsefalse  有短路效果        System.out.println((a>b)&&(a>c));//false && false        System.out.println("-------------------------");        //||有truetrue        System.out.println((a>b)||(a>c));//false && false    }}
4,三元运算符 关系表达式?表达式1:表达式2
package com.baidu.yunsuanfu;public class Demo {    public static void main(String[] args) {        int a=2;        int b=3;        int max=(a>b)?a:b;        System.out.println("a和b之间的最大值是:"+max);    }}
5,小练习 int a=10,b=9;计算(–a!=b++)?–a:++b;的值
package com.baidu.yunsuanfu;public class Demo {    public static void main(String[] args) {        int a=10,b=9;        int c=(--a!=b++)?--a:++b;        System.out.println(c);    }}

5.控制台输入

1,导包 `在类的上面添加 import java.util.Scanner;` 2,创建对象 `Scanner sc=new Scanner(System.in);` 3,接受数据 `int x = sc.nextInt();` `double d = sc.nextDouble();` `String s = sc.next()`
4,小练习 从控制台输入一个数,判断这个数是偶数还是奇数,输出结果。
package com.baidu.yunsuanfu;import java.util.Scanner;public class Demo {    public static void main(String[] args) {        //创建键盘录入对象        Scanner sc =new Scanner(System.in);        System.out.println("请输入一个数");        int a=sc.nextInt();        String s=a%2==0?"偶数":"奇数";        System.out.println(s);    }}
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/ce3049269546452487c0a8412e8e87e8~tplv-k3u1fbpfcp-zoom-1.image)

6.IDEA的常用快捷键

  1. Alt+Enter导入包,自动惨正代码

  2. Ctrl+Y删除光标所在行

  3. Ctrl+D复制光标所在行的内容,插入光标位置下面

  4. ctrl+Alt+L格式化代码

  5. Ctr1+/单行注释

  6. Ctrl+Shift+/选中代码注释,多行注释,再按取消注释

  7. Alt+Ins自动生成代码, toString。get。set等方法

  8. Alt+Shift+上下箭头移动当前代码行

  9. Alt+l 打开或关闭项目菜单

  10. ctrl + alt + insert创建包创建类

  11. ctrl + shift +回车切换到代码中

7.流程控制语句

1,流程控制语句概述
在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说程序的流程对运行结果有直接的影响。所以,我们必须清楚每条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能。
2,流程控制语句分类 (1) 顺序结构 (2)选择结构 (3)循环结构

7.1顺序结构

1,顺序结构概述
是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。
2,执行流程图
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/1d534db949e44675b8147cda3529f1ad~tplv-k3u1fbpfcp-zoom-1.image)

7.2选择结构

1,选择结构,也被称为分支结构。 2,Java中的两种选择结构语句 (1) if语句 ( 2)switch语句

7.2.1 if 语句

**1,if语句的格式有三种**
**(1)if语句第一种格式:**
if(关系表达式) {  语句体; }
a,执行流程
首先判断关系表达式看其结果是true还是false,如果是true就执行语句体,如果是false就不执行语句体。
b,执行流程图
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/d0a8024c7b2f446d911762d845034b94~tplv-k3u1fbpfcp-zoom-1.image)
**(2)if语句第二种格式:**
if(关系表达式) {语句体1;}else { 语句体2;}
a,执行流程
首先判断关系表达式看其结果是true还是false,如果是true就执行语句体1,如果是false就执行语句体2。
b,执行流程图
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/c639ed250885447c96f090f899db0773~tplv-k3u1fbpfcp-zoom-1.image)

(3),if语句第三种格式:

if(关系表达式1) {语句体1;}else  if (关系表达式2) {语句体2;}……….else {语句体n+1;}

a,执行流程

首先判断关系表达式1看其结果是true还是false,如果是true就执行语句体1,如果是false就继续判断关系表达式2看其结果是true还是false,如果是true就执行语句体2,如果是false就继续判断关系表达式…看其结果是true还是false如果…,没有任何关系表达式为true,就执行语句体n+1。

b,执行流程图

7.2.2小练习

根据分数输出对应级别 90-100 优秀 80-90 好 70-80 良 60-70 及格 60以下 不及格
package com.baidu.Demo;import java.util.Scanner;public class IfTest {    public static void main(String[] args) {        Scanner sc=new Scanner(System.in);        System.out.println("请输入分数");        int score=sc.nextInt();        if(score>=90&&score<=100){            System.out.println("优秀");        }else if (score>=80&&score<=90){            System.out.println("好");        }else if(score>=70&&score<=80){            System.out.println("良");        }else if(score>=60&&score<=70){            System.out.println("及格");        }else if(score<0||score>100){            System.out.println("成绩不合法");        }else {            System.out.println("不及格");        }    }}

7.2.3switch语句

1,switch语句格式:
switch(表达式) {case1:  语句体1;  break;case2:  语句体2;  break;  ……….  default:       语句体n+1;  break; }
2,执行流程
首先计算出表达式的值其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
3,,执行流程图

8.循环结构

1,循环语句的组成
a,初始化语句:一条或者多条语句,这些语句完成一些初始化操作。
b,判断条件语句:boolean 表达式,这个表达式能决定是否执行循环体。
c,循环体语句:这个部分是循环体语句,也就是我们要多次做的事情。
d,控制条件语句:这个部分在一次循环体结束后,下一次循环判断条件执行前执行。通过用于控制循环条件中的变量,使得循环在合适的时候结束。
2,Java提供了三种循环结构语句:
for,while,do…while

8.1for循环语句

1,for循环语句格式:
for(初始化语句;判断条件语句;控制条件语句) {         循环体语句;    }

2,执行流程

执行初始化语句,执行判断条件语句,看其结果是true还是false,如果是false,循环结束。如果是true,继续执行。执行循环体语句,执行控制条件语句,回到B继续。

3,执行流程图

小练习

在控制台输出所有的”水仙花数”
水仙花数是一个三位数,水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身,举例:(例如:1^3 + 5^3+ 3^3 = 153)。153这个数就是典型的水仙花数。

8.2while循环语句

1,while循环语句格式
while(判断条件语句) {         循环体语句;   }
2,执行流程图

小练习

使用while循环求出1-100数据之和
package com.baidu.Demo;public class While {    public static void main(String[] args) {        int i=1;        int sum=0;        while (i<=100){            sum+=i;            i++;        }        System.out.println("1-100的数据和:"+sum);    }}

8.3 do…while循环语句

1.do…while循环语句格式:
1.1基本格式

do {    循环体语句;   }while((判断条件语句);

2,执行流程图

![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/0d0f25d5f8344ef489170a3f83ccb0f1~tplv-k3u1fbpfcp-zoom-1.image)

9.break和continue

**1,break的使用场景:**
(1)在选择结构switch语句中
(2)在循环语句中
(3)break的作用:`跳出单层循环`
**2,continue的使用场景:**
(1)在循环语句中
(2)continue的作用: `退出本次循环`

10 三种循环的区别

do…while循环至少会执行一次循环体。
for循环和while循环只有在条件成立的时候才会去执行循环体

for循环语句和while循环语句的区别:

使用区别:控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,而while循环结束还可以继续使用,如果你想继续使用,就用while,否则推荐使用for。

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

所有巧合的是要么是上天注定要么是一个人偷偷的在努力。
结束!
**推荐阅读:**
[聊到JVM(还怕面试官问JVM吗?)](http://mp.weixin.qq.com/s?__biz=MzAwODc2ODgzMw==&mid=2247492106&idx=1&sn=6a8c6db5e4ebef3a25504f8481daf8d1&chksm=9b6b7e24ac1cf7321604bb1e5561edcbd3d425044ab23f945b35fe3e8ecf86c02773f2594459&scene=21#wechat_redirect)
[面试官问我Linux下常见网络命令](http://mp.weixin.qq.com/s?__biz=MzAwODc2ODgzMw==&mid=2247490319&idx=1&sn=2ff9803ddfb03726392e7f8908e056b9&chksm=9b688721ac1f0e37d38b95dace0bec6e9f4ce65bc324718791baba7c01a11b757b321f9c3c54&scene=21#wechat_redirect)
[Linux和Windows下ping的区别](http://mp.weixin.qq.com/s?__biz=MzAwODc2ODgzMw==&mid=2247492891&idx=1&sn=3d009a4be536367ae458f228193b690a&chksm=9b6b7935ac1cf023d94dae893cdd000f97727538ddd7fd2d2f78460166c414d6d3bcbb1a4ece&scene=21#wechat_redirect)
[看懂UML类图和时序图](http://mp.weixin.qq.com/s?__biz=MzAwODc2ODgzMw==&mid=2247492909&idx=1&sn=7eceeb585eaa3c9d122ad42ffe9fbb2f&chksm=9b6b7903ac1cf01587332bc5fe5bb96597f322ace8ed8c38ffafa250d69f736d927d4178ee8f&scene=21#wechat_redirect)
[怎么查看占 cpu 最多的线程](http://mp.weixin.qq.com/s?__biz=MzAwODc2ODgzMw==&mid=2247492879&idx=1&sn=c6a2cc833548a86a6b25717492fc9c0a&chksm=9b6b7921ac1cf037ebcfa7285629b3d061a57365a6234e7c67ced62f096249fc8bdc7530cb37&scene=21#wechat_redirect)
[如何搜到你想要搜到的东西?](http://mp.weixin.qq.com/s?__biz=MzAwODc2ODgzMw==&mid=2247489781&idx=1&sn=c354d286ce4e5e91183a195d107b5664&chksm=9b6884dbac1f0dcdb63d53dc7c0bc6a4b11c365ba0e760218b0c24fdc2e6621032c73cf9d2fc&scene=21#wechat_redirect)
私人微信|zijietiaodongpro (字节跳动pro)
CSDN|知乎|github|掘金:五角钱的程序员
**公众号【五角钱的程序员****】**

关注福利

关注公众号,后台回复【电子书】
送****几百本常用技术类电子书籍****