0%

JAVA学习笔记

JAVA学习笔记

时间复杂度

对于n>16时,时间复杂度的优劣结果为:

O(1)<O(log2n)<O(n)<O(nlog2n)<O(n^2^)<O(n^3^)<O(2)

CMD

1981 MS-DOS

1981-4-27 xerox 图形化界面

操作 说明
盘符名称: 盘符切换。E:回车,表示切换到E盘。
dir 查看当前路径下的内容。
cd 目录 进入单级目录。cd itheima
cd .. 回退到上一级目录。
cd 目录1\目录2… 进入多级目录。cd itheima\JavaSE
cd \ 回退到盘符目录。
cls 清屏。
exit 退出命令提示符窗口。

ctrl+滚轮 放大 缩小

win+E 打开我的电脑

1.5 环境变量
作用:
如果我想要在CMD的任意目录下,都可以启动某一个软件,那么就可以把这个软件的路径配置到环境变量中的
PATH里面。
在启动软件的时候,操作系统会先在当前路径下找,如果在当前录课没有再到环境变量的路径中去找。如果都找不
到就提示无法启动。

1&2 安装、下载与调试JDK与eclipse

JAVA EE可以直接调用 JAVA SE代码

JAVA EE 面向互联网网页,企业级别

JAVA SE 面向个人编程

JAVA ME面向嵌入式编程

API文档 应用程序编程接口

Application Programming Interface

方法,变量,结构

查看 http://docs.oracle.com/javase/8/docs/api/index.html

下载 http://www.oracle.com/index.html

CMD下编译与运行

大括号,小括号需要成对先书写,在中间双回车写内容

hello world.java

javac.exe 用于编译(需要后缀)

javac hello world.java

java.exe 用于运行(无需后缀)

java hello world

汉化包安装,放在eclipse目录里的drops里

环境配置方式
以前下载的老版本的JDK是没有自动配置的,而且自动配置的也只包含了4个工具而已,所以我们需要删掉已经配置
完毕的,再次重新配置Path环境变量。
①JAVA_HOME:告诉操作系统JDK安装在了哪个位置(未来其他技术要通过这个找JDK)
②Path:告诉操作系统JDK提供的javac(编译)、java(执行)命令安装到了哪个位置
1.5.3win10的bug
当电脑重启之后,环境变量失效了。表示操作系统不支持自定义的环境变量。
步骤:
还是要配置JAVA_HOME给以后的相关软件去使用
我们可以把java和javac的完整路径配置到PATH

notepad++设置
右键点击java文件,选择edit with notepad++。
点击设置,再点击首选项。在弹出的页面当中,左侧选择新建,中间选择Java,右侧选择ANSI。

IDEA详述

快捷键

psvm

1
public static void main(String[] args) 

sout

1
System.out.println();

改界面主题,字体及大小conslos

更改注释颜色 settings editor languages default

自动导包(比如输入的时候)

修改类名

必须修改类的文件名,不能再调试窗口改

新建模块

再file structure中加modle,并命名

新建项目

new project-empty project

关闭项目

file- close project

IDE分类

JAVA 用IDEA

C语言 用Clion

Python 用Pycharm

大数据用(大象)hadoop

企业应用开发(针对大访问量,仅同go语言具有此功能)

JAVA可以跨平台

C语言不能跨平台

JDK(Java Development Kit)称为Java开发工具,包含了JRE和开发工具
总结:我们只需安装JDK即可,它包含了java的运行环境和虚拟机。

JDK包含JRE

常见BUG

必须使用英文的标点符号

System 必须使用S大写的

创建包、类、接口

文件夹下创建包

包的名称(com.XX)

包下创建类(XX.java)

包下创建接口(XX.java)

public class Demo{

1
2
3
4
5
6
7
		public static void Demo(){
//TODO自动生成的构造函数存根
public static void main (string[]args){
​ System.out.printIn("你好Java");
​ }

}

保存后再运行

syso

//alt +”/“ 自动填补

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package com.new20221009;

public class xwv {
public static String xb = " University";
public static String xa = xb.toUpperCase();
public static void main(String[] args) {
// TODO 自动生成的方法存根,// 超出了int值的取值范围,溢出,出现错误值
System.out.println("Lanzhou" + xb + " is locatted in beautifiul city called the coast of Lanzhou.");
System.out.println("Lanzhou" + xa + " is locatted in beautifiul city called the coast of Lanzhou.");
long xc;
xc = 123456789L * 987654321L;
System.out.println(xc);
double za=4.35*100;

System.out.println(za);

System.out.println(Math.round(za));
double ra=0.1;
double rb=2.0-1.9;
System.out.println(ra);
System.out.println(rb);
System.out.println(ra==rb);
System.out.println('8'*2);

System.out.println(8*2);
char sa ='a';
char sb ='汉';
char sc ='2';

char ha =97;
char hb =27721;
char hc =50;
System.out.println(sa);
System.out.println(ha);
System.out.println("[\\]");

System.out.println("[\\']");

System.out.println("[\101]");

System.out.println("[\t]");
}

}

属于方法,必须要跟再变量之后,中间以.隔开

1
2
3
str.toLowerCase()

str.toUpperCase()

3.2 基本数据类型

3.2.1 整数

byte 1字节=8位 -128-127

short 2字节

int 4字节

long 8字节

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
byte a = 12

byte a = 12, b = -13

short a = 12

short a = 12, b = -13

int a = 12

int a = 12, b = -13

int c = a + b;

long a = 978612L

long a = 123L, b = -413L

long c = 123L + 413L

int za = 34
int zb = 098
int zc = 0X65

long 型赋值时必须尾部加L

public class Demo{
public static void main(string[] args){
long a=123456789 * 987654321;

​ long b=123456789L * 987654321L;

// 超出了int值的取值范围,溢出,出现错误值

​ System. out. println(a);

​ System. out. println(b);

}

int 是 整形的默认类型

double 是 浮点型的默认类型

3.2.2 浮点型(近似值,不准确)

float 4字节

double 8字节

1
2
3
4
5
6
7
8
9
float a = 1.1F

float a = 1.1F, b = -2.4F;

double a = 1.1D

double a = 1.1D, b = -2.4d;

double a = 1.1, b = -2.4;

float 尾部加F

double 尾部可加D ,d ,不加。

近似值,不准确

1
2
3
4
5
6
7
8
9
10
11
12
double a=4.35*100; 

System.out.println(a);

System.out.println(Math.round(a)); //四舍五入法

double ra=0.1;
double rb=2.0-1.9;
System.out.println(ra);
System.out.println(rb);
System.out.println(ra==rb);
System.out.println(Math.abs(ra-rb)<1e-6);

使用Java提供取绝对值方法
Math.abs()
与最小数”1e-6”相比较

3.2.3 字符

用==单引号==包含的可打印的==单个==符号

双引号括起来的是字符串,而非字符

字符串需要用双引号引起来

‘8’所指示的是其unicode码

1
2
3
System.out.println('8'*2); 

System.out.println(8*2);

char c语言所记录为ASCII,Java语言所记录为unicode

取值范围为0-65536

1
2
3
4
5
6
7
8
9
char sa ='a';
char sb ='汉';
char sc ='2';

char ha =97;
char hb =27721;
char hc =50;
System.out.println(sa);
System.out.println(ha);

两种赋值方法的结果是相同的

转义字符 //解决‘’‘ 需要现实 ’ 单引号 的问题

转义字符|含义

1
2
3
4
5
6
7
8
9
10
11
12
13
\‘单引号字符

\\反斜杠

\t垂直制表符,将光标移到下一个制表符的位置

\r回车

\n换行

\b退格

\f换页
1
2
3
4
5
6
7
System.out.println("[\\]");

System.out.println("[\\']");

System.out.println("[\101]");

System.out.println("[\t]");

3.2.4 布尔类型

boolean

true false

1
2
3
4
5
boolean a; 

boolean a=true;

boolean a=true,b=false;

3.3 运算符

3.3.1 赋值运算符

量 = 值

量被写,

值被读,可为常量、公式

·int i=1,j=2,k=3;

定义整型变量i、j、k
·final int val=5;

定义整型常量val
·i=6;

变量=常数
·k=i+i;

变量=表达式

·a=b=c=5;

变量=变量=变量=常量

3.3.2 算术运算符

运算符说明实例结果

1
2
3
4
5
+加12.45f+15   27.45
-减4.56-0.16 4.4
*乘 5L*12.45f 62.25
/除7/2 3
%取余12%10 2
1
2
3
(+)一元正号	+ 100			(-)一元负号 - 100
(+)加法运算符 x+y (-)减法运算符 x-y
(+)拼接字符串 “hello"+"world"
1
2
3
4
5
6
(*)乘法运算符(/)除法运算符
·int a=3*4;·int b=16/8;|2==5/2
(%)取余运算符
·double c=12.4%5.2;|1==5%2
使用除法运算符与取余运算符,0不能做除数!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package com.new20221009;

public class STUDY20221010 {
public static void main(String[]args){
float num1=45.2f;
int num2=120;
int num3=17;
int num4=10;
System.out.println("num1+num2的和为:"+(num1+num2));
System.out.println("num1-num的差为:"+(num1-num2));
System.out.println("num1*num2的积为:"+(num1*num2));
System.out.println("num1/num2的商为:"+(num1/num2));
System.out.println("num3/num4的余数为:"+(num3%num4));
}
}

字面量(literal):表达的信息如字面所示,再通俗点就是表达的信息就是它自己。 常量和字面量之间几乎没有区别,用良好的定义规范来命名常量可以起到替代字面量

3.3.3 自增和自减运算符

自增运算符|自减运算符
前置形式++a –a
后置形式〉a++ a–
计算的结果a+1|a-1
是单目运算符,不能++(a+b)

前置与后置的区别

1
2
3
4
5
int a=1,b=1;
System.out.println(a++);
System.out.println(a);
System.out.println(++b);
System.out.println(b);


​ 1
​ 2
​ 2
​ 2

3.3.4 关系运算符

1
2
3
4
5
运算符说明实例结果
==|等于|2==3|false
<|小于|2<3|true>|大于2>3|false
<=|小于等于5<=6|true>=大于等于|7>=7|true
!=不等于2!=3true
1
2
3
4
5
6
int c=20,d=21,e=22;
System.out.println(c+"是偶数码"+(c%2==0));
System.out.println(c+"是奇数码"+(c%2==1));
System.out.println(c<d);
System.out.println(d<e);
//System.out.println(c<d<e);不能串联使用关系运算符,这句代码错误

3.3.5 短路运算符

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
运算符含义举例结果
&&逻辑与A&&B(真)与(假)=假
||逻辑或A||B(真)或(假)=真
!逻辑非!A不(真)=假
int c=20,d=21,e=22;
System.out.println(c+"是偶数码"+(c%2==0));
System.out.println(c+"是奇数码"+(c%2==1));
System.out.println(c<d);
System.out.println(d<e);
System.out.println(c<d&&d<e);
//System.out.println(c<d<e);不能串联使用关系运算符,这句代码错误
int f=20,g=1,h=22;
System.out.println(f<g&&g<h);
System.out.println(f<g||g<h);
System.out.println(!(f<g));
true
true
true
false
true
true

逻辑运算的结果
true&&true==true true ll true==true Itrue ==false
true&&false ==false true false ==true
false&&false ==false falsel false ==false Ifalse ==true

逻辑与,只要有false,就是false

逻辑或,只要有true,就是true

3.3.6 位运算符

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
位逻辑运算符
运算符含义|举例
&|与|a&b
||或|a|b
~取反|~a //a为0,取反为1
A
^异或a^b //a与b相同为0,不同为1

位移运算符
运算符含义举例

<<|左移位|a<<2

>> 右移位 b >> 4

>>> 无符号右移位 x>>>2


位逻辑运算符

位移运算符

右移1位与右移2位(0.5倍关系),右移符号不变

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package com.new20221009;

public class STUDY2022101002 {
public static void main(String[]args){
int a=24;
System.out.println(a+"右移两位结果:"+(a>>2));
int b=-16;
System.out.println(b+"左移三位结果:"+(b<<3));
int c=-256;
System.out.println(c+"无符号右移结果:"+(c>>>2));//byte 与 short 变量 不能做 无符号位移运算
byte d=(byte)(-32>>>1);
System.out.println(d);
short e=(short)(-128>>>4);
System.out.println(e);
}
}


3.3.7 三元运算法

    int f=1; 
    int g=f<3?2:3;
    System.out.println(g);
    System.out.println(f<3?2:3);

f<3 为true 返回2

f<3 为false 返回3

3.3.8 运算符的优先级列表

3.5 数据的类型转换

小物进大物 两种方式

大物进小物 只有一种 还可能溢出

低精度向高精度转换 char与int互相兼容

将int类型的a转换为byte类型

显示转换(强制转换),高精度转换为底精度,不仅适用于基本类型,还适用于引用类型

显示转换导致精度损失

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
float f =(float)3.1415926

int i =(int)3.1415926
byte b=(byte)129;
System.out.println(b);
结果为3.14159
3
-127 //数值越界溢出,结果严重失准
public class Practice {
public static void main(String[] args) {
long mylong = 45789;
byte mybyte = 123;
short myshort = 32564;
int myint1 = (int) mylong;
int myint2 = (int) myshort;
int myint3 = (int) mybyte;
System.out.println(myint1);
System.out.println(myint2);
System.out.println(myint3);
}
}

3.6.1 代码的注释

注释就是对代码的解释和说明。

注释范围内的任何内容都不会被计算机编译执行

输入代码必须使用半角+英文

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// 文档注释
/**
*这是我们用来测试类
* @author mr
*
*/
public class Demo{
/**
*这里是类的主方法

* @param args 这是主方法的参数
*/
public static void main(String[] args) {
//System.out.println(myint1);单行与多行注释
/*
System.out.println(myint1);
System.out.println(myint2);
System.out.println(myint3);
*/

在类下的jiava文件右击export,java,javadoc,选择默认的包和输出路径,finish.

打开路径中的index就可以发现api样的文档.

4 语法

4.2.1 if语句

决策分支:拿主意,做选择。

1
2
3
4
5
6
7
if语句

if……else语句

if……else if 语句


一分支语句

1
2
3
4
5
if(布尔表达式){

语句;}//中间可多条语句

if(布尔表达式)语句;//中间只可一条语句
1
2
3
4
5
6
自动补全  alt + /

自动调整格式 ctrl + shift + f

自动保存 crtl + f
单行注释 crtl + /
1
2
3
4
5
6
7
8
9
10
11
package com.new20221009;

public class STUDY20221012 {
public static void main(String[] args) {
int num=4;
if(num%2==0){
System.out.println("num是偶数");
}
System.out.println("num值是"+num);
}
}

二分支语句

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
int balance=500;
if(balance==500){
System.out.println("买豪车");
}else{
System.out.println("买自行车");
}

int balance=500;
if(balance==500)
System.out.println("买豪车");
else
System.out.println("买自行车");

int num2=4;
if(num2%2==0){
System.out.println("num2是偶数");
}else{
System.out.println("num2是奇数");
}
System.out.println("num值是"+num);


int balance=500;
if(balance==500){
System.out.println("账户有500W");
if(true)
System.out.println("买豪车");
}else
System.out.println("买自行车");

1
2
3
else 会匹配离他最近的if语句

else不能单独使用,必须和if一起出现

多分支语句

1
2
3
4
5
6
7
8
9
10
11
if(balance2>=500){
System.out.println("兰博基尼");
}else if(balance2>=200 && balance2<500){
System.out.println("卡宴");
}else if(balance2>=50 && balance2<200){
System.out.println("奔驰");
}else if(balance>0 && balance2<50){
System.out.println("奥迪");
}else{
System.out.println("再接再厉");
}
1
2
3
4
5
6
7
8
9
boolean flag=falseif(flag=true){//错误bug
Systed.out.println("表达式是true");
}else{
System.out.println("表达式是false"//错误bug

boolean flag=falseif(!flag){//错误bug
Systed.out.println("表达式是true");
}else{
System.out.println("表达式是false"//错误bug

4.2.2 switch 多分支语句

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
int grade=10;
switch(grade){
case 10:System.out.println("成绩为优");break;
case 9:System.out.println("成绩为优");break;
case 8:System.out.println("成绩为良");break;
case 7:System.out.println("成绩为中");break;
case 6:System.out.println("成绩为中");break;
case 5:System.out.println("成绩为差");break;
case 4:System.out.println("成绩为差");break;
case 3:System.out.println("成绩为差");break;
case 2:System.out.println("成绩为差");break;
case 1:System.out.println("成绩为差");break;
case 0:System.out.println("成绩为差");break;
default:System.out.println("成绩无效");
}




int grade=10;
switch(grade){
case 10:
case 9:System.out.println("成绩为优");break;
case 8:System.out.println("成绩为良");break;
case 7:
case 6:System.out.println("成绩为中");break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:System.out.println("成绩为差");break;
default:System.out.println("成绩无效");
}//10-9,优秀,8,良,7-6,中,5-0,差

4.3.1 while循环语句

1
2
3
4
5
6
7
8
9
1+2+3+……+100=

1+100

2+99

3+98

5050

1到100累加

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
i=1;

sum=0;

i<=100

sum =sum+i;

i++;



int i=1;
int sum=0;
while(i<=100){
sum =sum+i;
System.out.println("sum="+sum+" i="+i);
i++;
}
System.out.println(sum);

4.4.3 do……while循环语句

1
2
3
4
5
6
7
8
9
10
11
12
13
int a1=0,a2=0;
System.out.println("befor while a2="+a2);
while(a1>1){
a2++;
}
System.out.println("after while a2="+a2);

int a1=0,a2=0;
System.out.println("befor while a2="+a2);
do{
a2++;
}while(a1>1);
System.out.println("after while a2="+a2);

do while更容易实现两次密码的校验

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package com.new20221009;
import java.util.Scanner;
public class STUDY20221012 {

……………………



Scanner sc=new Scanner(System.in);
String pwd1="0";
String pwd2="-1";
do{
System.out.println("请输入密码:");
pwd1=sc.nextLine();
System.out.println("请再次输入密码:");
pwd2=sc.nextLine();
if(!pwd1.equals(pwd2)){
System.out.println("您输入的密码不一致,请重新输入!");
}
}while(!pwd1.equals(pwd2));
System.out.println("密码设置成功!");

4.3.3 for循环语句

1
2
3
4
5
6
int sum2=0;
for(int i3=1;i3<=100;i3++){
sum2+=i3;
}
System.out.println("sum="+sum);
}
1
2
3
4
int arr[]={7,10,56,75,68};
for(int x:arr){
System.out.println(x);
}
1
2
3
4
5
6
7
8
9
10
11
12
int cock,hen,chick;
for(cock=1;cock<=20;cock++) {
for(hen=1;hen<=33;hen++) {
for(chick=3;chick<=99;chick+=3) {
if(cock*5+hen*3+chick/3==100) {
if(cock+hen+chick==100) {
System.out.println("公鸡:"+cock+"母鸡:"+hen+"小鸡:"+chick);
}
}
}
}
}//群举法

4.4 循环控制

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int i4=1;

while (i4>0){

i4++;

System.out.println(i4);

if(i4==10){

break;

}

}

System.out.println("循环停止");
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
for(int i5=0;i5<3;i5++){

System.out.println("i5="+i5);

for(int j2=0;j2<6;j2++){

System.out.println("j2="+j2);

if(j2==4){

break;

}

}

}//break跳出的是内层循环


out: for(int i5=0;i5<3;i5++){

System.out.println("i5="+i5);

for(int j2=0;j2<6;j2++){

System.out.println("j2="+j2);

if(j2==4){

break out;

}

}

}//loop标签的指定可以指定跳出哪一层循环,loop标签可以自定义名称
1
2
3
4
5
6
7
8
9
for(int s=1;s<=10;s++){

if(s%2==0)

continue;
//当s为偶数时跳过continue后的语句
System.out.println("s="+s);

}

5.1 String类

Char只能保存一个字符

只要有+,就会拼接

如”abc”+true abctrue

“abc”+123 abc123

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package com.new20221009;

public class STUDY20221014 {
public static void main(String[] args) {
String a="时间就是金钱,我的朋友。";
String b="锄禾日当午",c="小鸡炖蘑菇";

String str1,str2; str1="We are students";str2="We are students";
System.out.println(a);
System.out.println(b);
System.out.println(str1+str2);
}

}

main alt +/ 自动补全

1
2
3
char[] charArray= {'t','i','m','e'};
String a2=new String(charArray);
System.out.println(a2);
1
2
3
char[] charArray2= {'時','間','就','是','金','錢'};
String a3=new String(charArray2,4,2);
System.out.println(a3);

4是從第五位開始

1
2
3
byte[] byteArray= {-60,-6,-70,-61};
String a4=new String(byteArray);
System.out.println(a4);

顯示金錢

5.6 正则表达式

DAY 02 JAVA基础概念

键盘录入

int a = 123;

三元运算符

快捷键

ctrl+alt+l 自动化格式 对齐代码

()的运算优先级优于其他所有,凡是需要给定顺序,必要用()

Day 03 判断和循环




Eclipse 快捷键

HQ 标压

U:低压,

Y:超低压,

摩尔定律(英特尔创始人之一戈登·摩尔): 集成电路上可以容纳的晶体管数目在大约每经过18个月到24个月便会增加一倍。换言之,处理器的性能大约每两年翻一倍,同时价格下降为之前的一半

摩尔定律(Google的前CEO埃里克·施密特):如果你反过来看摩尔定律,一个IT公司如果今天和18个月前卖掉同样多的、同样的产品,它的营业额就要降一半。IT界把它称为反摩尔定律。

安迪-比尔定理 (Andy and Bill’s Law)是对IT产业中软件和硬件升级换代关系的一个概括。原话是 “Andy gives, Bill takes away.(安迪提供什么,比尔拿走什么。)” 安迪指英特尔前CEO安迪·格鲁夫,比尔指微软前任CEO比尔·盖茨,这句话的意思是,硬件提高的性能,很快被软件消耗掉了。

8 bit =1 byte

学习须知

​ 建立学习目录

​ 软件目录

​ 电子笔记

​ 不记详细笔记,要记概要笔记

软件

​ 系统软件

​ 应用软件

软件开发

​ 图形化界面(GUI)

​ 命令行方式(CLI)

程序=算法+数据结构

DOS命令

写入文字至doc

删除文件(通配符)

rm删除目录必须保证目录非空

rm -f/*为强制删除

del文件夹,会删除文件夹下所有文件

计算机语言历史

凡是和操作系统交互的都用C和C++(开发底层,面向过程)

开发效率:C/C++<java<Python

JAVA优点

​ 可以与互联网用户交互

Java应用

​ 与C的区别

运行机制与特性

​ 一次编译,到处运行

JDK/JRE/JVM

安装

​ 在系统变量和用户变量里设置是一样的

第一个Java程序(必须用ANSI编码)

​ 字节码文件名对应类名

代码编辑记事本

​ EditPlus

​ NotePad++

注释(comment)

​ 单行注释;

​ //单行注释:如下的main方法是程序的入口!

​ 多行注释;

​ /*多行注释:

​ 如下的main方法是程序的入口!

​ main的格式是固定的!

​ */

1
2
3
4
5
6
7
8
9
	/*

​ ①对所写的文档进行解释说明,增强可读性。方便自己,方便别人。

​ ②可以调试(屏蔽)所写的代码

​ ③单行注释与多行注释不参与编译,生成的class内不包含注释。

​ */

​ 文档注释;

1
2
3
4
5
6
7
8
9
		/**

@author 指定Java程序的作者shkstart

@version 指定源文件的版本v1.0

​ */


1
2
3
4
5
6
7
8
9
10
11
12
/**
@author 指定Java程序的作者shkstart
@version 指定源文件的版本v1.0
*/

class HelloJava{
public static void main(String[] args){
System.out.println("Hello,World!");
}
}


​ 中文乱码问题:

​ 方案一(实测可用):用Editplus或Notepad++打开文件,将编码方式改为ANSI

​ 方案二(实测不可用):乱码的同学在dos指令的最后加上javadoc -d myHello -author -version HelloWorld.java -encoding utf-8 -charset utf-8


​ 多行注释不可嵌套使用

生成注释文件

1
javadoc -d myHello -author -version HelloWorld.java

API文档(字典)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

***对第一个Java程序进行总结
1.java程序编写-编译-运行的过程(javac java)
2.javac进行编译 javac ---.java
3.javac进行运行 java ---(类名)

***一个java源文件中可以写多个class,
但只能有一个public的class,
而且public只能加在与源文件名相同的class之前。

***程序的入口是main()方法,格式是固定的//args可写作a,arguments:参数
public static void main(String[] args)
可写作 public static void main(String[] a)
public static void main(String a[])

***输出语句
System.out.println("Hello,World!");先输出数据,后换行
System.out.print("Hello,World!");只输出数据

***每个执行语句都以“;"或“{”结束·

***编译的过程;
编译过程中会生产多个字节码文件,文件名与类名相同

常用的Java开发工具

​ 文本编辑工具

集成开发环境

考试一

Java 语言的软件开发工具包,简称JDK

Java运行环境(Java Runtime Environment,简称JRE

(JVM+Java系统类库)

JVM ,Java虚拟机

JDK = JRE + Java的开发工具(javac.exe,java.exe,javadoc,exe)

JRE = JVM + Java核心类库

定义JAVA_HOME变量,JAVA_HOME为bin的上一层目录

path变量内写%JAVA_HOME%\bin

rd 删除文件夹

md

cd

cd\

dir

del

创建 ChairMan.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class ChairMan{

​ public static void main(String[] args){

​ System.out.println("姓名:张蔡斌\n");

​ //System.out.println();

​ System.out.println("性别:男");

​ System.out.println("家庭地址:四川省成都市高新区");

}

}

编译

1
javac ChairMan.java

运行

1
java ChairMan

生成注释文档

1
javadoc -d chairMan -author -version ChairMan.java



关键字

byte 拜特

bit比特

SQL 涩尔扣

Oracle 奥瑞扣

ASCII > Unicode > utf-8

java编译使用GBk编译(调整为ANSI即可)

String类型变量为引用类型,声明时使用一对“”

String可以和八种基本数据类型进行运算,前后有一个为String,即为连接符(仅连接后的一个变量)

char中不能为空,可为空格

String中可为空

char = ‘’ X

char = ‘ ’ 对

A=65, a=97

char和char相加为int

String转int

进制与进制间转换

int num1 =0b0101 5

int num1 = 0107

int num1 =0x010A

二进制转换为十进制

十进制转换为二进制

二进制转换为八进制或十六进制

三位一看,四位一看

八进制或十六进制转换为二进制


1.标识符的命名规则有哪些?

数字0-9,字母,$, _,

开头不能为数字

严格区分大小写

2.标识符的命名规范有哪些?

包 全小写 book

类,class,接口,interface 大驼峰法 StudentName

变量,方法 小驼峰法 railRoad

常数 全大写 CAR_ID_PRINCE

3.Java 变量按照数据类型怎么划分?并指出Java的基本数据类型有哪8种,并指出各自占用的内存空间大小

内存大小

byte 1byte -128-127

short 2byte

int 4byte

long 8byte

float

double

char

boolean

引用类型

类class—-字符串String

数组

接口

4.说明基本数据类型变量之间自动类型提升的运算规则。

char、byte、short—>int—>long—>float—>double

5.说明基本数据类型变量之间强制类型转换的使用规则和强转可能出现的问题。

int a =12

byte b=(byte)a+(byte)2

容量大—容量小,要用强转符()

精度丢失


开发中推荐使用双与与双或

O(1)级别

程序流程控制



\1. “&”和“&&”的异同

2.程序输出

1
2
3
class OperatorTest  {    
public static void main(String[] args){
boolean** x = **true**; **boolean** y = **false**; **short** z = 40; **if** ((z++ == 40) && (y = **true**)) { z++; } **if** ((x = **false**) || (++z == 43)) { z++; } System.*out\***.println("z = " + z); } }

结果为:44

++a, 先运算后比较(比较)

a++,先比较(比较)后运算

\3. 定义三个int型变量并赋值,使用三元运算符或者if-else获取这三个数中的较大数的实现

int num1 = 10,num2 = 21,num3 = -21;

int max;
if(num1 >= num2 && num1 >= num3){
max = num1;
}else if(num2 >= num1 && num2 >= num3){
max = num2;
}else{
max = num3;
}

System.out.println(“三个数中的最大值为:” + max);

\4. 编写程序,声明2个double型变量并赋值。判断第一个数大于10.0,且第2个数小于20.0,打印两数之和。否则,打印两数的乘积。

double d1 = 12.3;
double d2 = 32.1;
if(d1 > 10 && d2 < 20){

}else{

}

\5. 交换两个变量值的代码的实现

String s1 = “北京”;
String s2 = “南京”;

String temp = s1;
s1 = s2;
s2 = temp;

break在switch-case中的应用-去冗余



Day04 每日一练

1.switch后面使用的表达式可以是哪些数据类型的。
byte 、 short 、char 、int 、枚举类型变量、String类型。

  1. 使用switch语句改写下列if语句:

    int a = 3;
    int x = 100;
    if(a==1)
    x+=5;
    else if(a==2)
    x+=10;
    else if(a==3)
    x+=16;
    else
    x+=34;

int a = 3;
int x = 100;
switch(a){
case 1:
x+=5;
break;
case 2:
x+=10;
break;
case 3:
x+=16;
break;
default:
x+=34;
//break;
}

  1. 谈谈你对三元运算符、if-else和switch-case结构使用场景的理解
    int c;
    if(a != b){
    c = a;
    }else{
    c = b;
    }

int c = (a != b)? a : b;

int c = a;

  1. 如何从控制台获取String和int型的变量,并输出?使用代码实现
    1.import java.util.Scanner;

  2. Scanner scan = new Scanner(System.in);

  3. String info = scan.next();
    int id = scan.nextInt();

  4. 使用for循环遍历100以内的奇数,并计算所有的奇数的和并输出。

int sum = 0;
for(int i = 1;i <= 100;i++){
if(i % 2 != 0){
Sysout(i);
sum += i;
}
}
syout(sum);

谢谢你们对我的支持!

欢迎关注我的其它发布渠道