请选择 进入手机版 | 继续访问电脑版

湖南新梦想

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 5225|回复: 4

java基础之学后总结(1)

[复制链接]

27

主题

30

帖子

185

积分

注册会员

Rank: 2

积分
185
发表于 2022-11-27 12:59:42 | 显示全部楼层 |阅读模式
第一章:
  1.设置环境变量
  环境变量是操作系统中指定操作系统运行环境的一些相关参数。
  环境变量共三个,jdk含有两个,新增2个java所需(JAVA_HOME,CLASSPATH),修改一个os自带的PATH。
            JAVA_HOME:指明JDK的安装路径
        CLASSPATH:指明JDK及其他应用软件的库和类文件所在路径
            PATH:指明应用软件执行文件的所在路径  
  一般是PATH的路径都是: ...\bin
  【最好都是大写字母,Windows不区分,但是其他操作系统不一定】
2. Java运行原理:
xx.java源代码文件 --> java编译器(javac.exe)-->类名.class文件 -->  jvm(java.exe)  -->  os/硬件
cmd命令行执行:java 类名              cmd命令行执行 javac xx.java(形成二进制字节码文件yy.class

        Java.exe作用:
a. 检查语法错误
b. 生成二进制字节码文件
             java 类名  将类加载到jvm(java虚拟机)中运行
    非public的class名字与文件名可以不相同,反之必须相同。
3.  JDK:java开发工具包
             JRE:JRE是JDK的一部分,java运行环境
             JVM:java虚拟机


回复

使用道具 举报

27

主题

30

帖子

185

积分

注册会员

Rank: 2

积分
185
 楼主| 发表于 2022-11-27 13:00:29 | 显示全部楼层
第二章

1. 数据类型:

整型 int

浮点型{

双精度 double(java语言的小数默认是双精度)

单精度 float

}

字符型 char(数据必须用单引号引用,且只能放单个字符)

布尔型 boolean(只有两种值 true,false)



2. 定义变量:

数据类型关键字 变量名;

数据类型关键字 变量名1,变量名2;

数据类型关键字 变量名 = 数值;

变量赋值:(局部变量必须先赋值再使用)

变量名=数据值;(数据值需与变量名数据类型相符合)

3. 编程规范

a. 一个语句单独一行   //方便加注释和对相关变量进行删改

b. 大小括号成对写,不容易遗忘

c. 变量名有明确含义

驼峰 YearMonth(首字母大写) iYear(整数型年份)

匈牙利 year_month(两个单词之间用下划线分开)

d. 嵌套最好控制在3~5层



变量名命名规则:

a. java字母、下划线_、数字、$

b. 非数字开头

c. 区分大小写(a和A是俩个变量)

d. 非关键字(int,float)

4. 变量的计算

加减乘除(+ - * /)

% 求余数(余数的正负和除数的符号一致)

++ 自增  -- 自减(变量符号谁在前谁优先,符号在后也会做)



赋值:

-=,*=,/=,%=,+=



但不同类型的数据类型一起进行计算,首先看数据类型是否兼容。

不兼容则编译出错;反之,最后的结果会自动向精读高(优先级)的数据类型转换(数据转换是自动的)。

当然也可以强制性转换,但高精度的数据类型转化为低精度数据类型应该注意溢出。

强制类型转换格式为:(数据类型关键字) 被转换的数据。

常用ASII码

‘0’ 48

‘a’ 97

‘A’ 65

大写字母跟小写字母差32,大写字母的ASII码小一些



溢出:超出数据类型的取值范围

现象:1. 赋值不允许超出取值范围,编译会报错

2. 数据在运算过程中超出取值范围,编译不会出错,但运行会受到影响



那么如何看精度(优先级)高/低:

a. 数据类型占用的内存字节容量

b. 能表达小数的数据类型精度更高



如:整数/整数得到的结果为整数,整数和小数做加减乘除自动转化为小数。

字符char类型占用两个字节,所以可以定义一个变量为一个汉字。

且字符型数据最终作为整数存储处理的,并且可以做加减乘除运算。

因为最后的结果会自动向精读高(优先级)的数据类型转换,即字符型向整数转换。



    关系/比较运算符(其返回结果都是布尔类型):

== , != , > ,< , >= , <=

逻辑运算符:

&& 并且  

|| 或者

! 非



关系表达式?表达式1:表达式2

满足关系表达式,则实现表达式1,反之满足表达式2



5. 输入数据

过程:程序执行语句等待用户在屏幕中输入

屏幕中输入之后结果存放到程序的变量中

引用Scanner类:improt java.util.Scanner;

int i;

Scanner sc = new Scanner(System.in);//创造新的内存空间

i = sc.nextInt();

根据定义的变量的数据类型不同,sc.next后接的英文就不一样,一般是大写数据类型的首字母,如“sc.nextDouble()”,但是没有字符型的方法。

那么输入单个字符的方法为,使用“sc.next().charAt(0);”。

从字符串中获取第n个字符,使用“String str = sc.next();

char x = str.charAt(n-1);”

6. 控制语句(包括判断语句和循环语句)

if语句:

if(判断条件){

判断条件为真执行该括号内语句;

直到括号内语句全部执行完,方可退出循环;
}

else{

判断语句为假执行该括号内语句;

直到括号内语句全部执行完,方可退出循环;

}

if语句中可以发生嵌套,即if中使用if,即else中再使用if-else语句,但嵌套最好控制在3~5层

第三章

1. switch语句

表达式可以是整型、字符串、字符型。表达式和case后面的值作比较,相等则执行相应case后面的语句。

且如果每个case后如果没有结束switch-case语句的相应代码,那他将会继续执行case语句,哪怕case后面的值不等于表达式后面的值。(switch的贯穿性)



switch(表达式)

{

case 1:

语句1;

break; //终止switch的执行

case 2:

语句2;

break; //终止switch的执行

.......

default:

语句3; //如果都不符合,则执行

}

2. 分支/判断语句的小结

a. 多条件的判断,注意逻辑关联

b. 判断是否在数据取值区间,使用“而且” &&

不在数据取值区间,使用“或者” ||

c. && 多个条件必须同时成立,条件1 && 条件2,条件1必须满足,才能 判断条件2

d. ||只需要有一个满足,条件1 || 条件2,只要有任意一个条件满足,另 外一个不需要判断

e. switch注意贯穿,使用break

f. 判断一定加否则处理



3. 循环语句(while和for)

循环四大要素

a. 循环起点

b. 循环终点

c. 步长(增量)

d. 循环体(要做的事情)



while(条件语句){

只要条件成立,将一直循环执行语句;

}



语句块中的内容无论多少行,都要用{}包含起来。



for(语句1;语2;语句3){

循环体;
}

注:   语句1 - 循环起点

语句2 - 循环终点

语句3 - 步长



为什么在企业编程规范中建议尽量用for替代while循环?

答:for比较直观能快速获取循环3大要素的信息,利于阅读、维护



循环控制语句(一般与判断语句联用):

break;  //终止循环,跳出循环

continue;  //本次循环停止执行,直接进入下次循环

【continue的位置对while的循环有所影响,因为可能会导致while语句中的有些代码不执行,但对for没有影响】

4. 无限次循环

While(true){

....

}

for(;;){

....

}



5. java是否允许局部变量不赋初值,什么情况下允许,什么情况下不允许

答:允许。

对于一个只需要接收数据的变量可以不赋初值,但是参与运算的并且直接输出的局部变量需要赋初值。



6. 字符串比较不能用==,用equals(),比如s.equals(“abc”)可判断字符串变量s与abc是否相等。

   字符串(String类)

字符串表达方式用双引号“”

读取第n个字符:charAt(n-1)

判断是否相等:equals()【切记不要用”==”】

获得字符串的长度:length()

         next();  不读取回车以及空格

nextLine();  会受到cmd执行代码时回车键的影响

7. 多重循环

break/continue 控制单层循环,不能单独出现在if语句中;只能在for+if中.

如:

for(;;){

If(...){

...

break/continue;

...

}

}

注:嵌套层数控制在3~5层,建议尽量不要超过5层

8. 数组

是同一种数据类型的多个值放在同一个变量当中。



数组自带的属性:

length 数组中元素的个数 // arry.length

区别String的length() ,”abc”.length():

答:length是属性,length()是方法,表示获得长度

数组下标使用的控制:

控制下标在0~(n-1)之间,n是分配内存的空间的数量

若不满足,则越界(ArrayIndexOutOfBoundsException),编译直接报错。



定义数组:

第一种: 数据类型[] 变量名; //int[] iNo;

第二种: 定义数组时已知其所需的内存空间

数据类型[] 变量名 = new 数据类型[n]; //n为个数

第三种: 定义数组时确定数组元素的值

数据类型[] 变量名 = {数据元素}

注意第二种[]内不能限制长度



使用数组:

第一种: iNo = new int[10]; //申请/分配内存空间

变量名[下标] = 数据值; //iNo[2]=546; 下标可以是变量



.toCharArray()  将字符串的每个字符转化为单个字符



内存中数据的存储形式:

栈(静态内存,占有固定的存储空间,且容量不可变)

堆(动态内存,占用存储空间容量可变)

基本数据类型的变量存在栈中;

数组对应的内存数据存放在堆中;

也就是说,数组的名字在栈当中,但数组所保存的变量在堆里,因为数组可通过new扩大数组的大小(c只能是常量,但是java可以是变量)。

数组名实质指向一个内存地址。



小结:

数组的使用步骤 :

a. 定义数组变量

b. 为数组变量分配内存空间

c. 通过下标/索引对数组元素赋值

d. 通过下标/索引取出数组的元素

回复

使用道具 举报

27

主题

30

帖子

185

积分

注册会员

Rank: 2

积分
185
 楼主| 发表于 2022-11-27 13:00:47 | 显示全部楼层
第四章

1. 开发工具(IDE 集成开发环境)

Eclipse、IDEA、myeclipse

可编写、编译、运行、调试



2. 二维数组

数组类型[][] 变量名 = new 数据类型[n][k]

n的大小必须被指明,k按要求来

int[] a = {1,1,3};

int[][] a = {{1,2,3},{2,3,4}}

补充输出数组方式  for(定义一个变量 : 数组名){

System.out.print(变量名 + " ");

}



3. 冒泡排序:按轮、次进行

第五章

1. for(int k : m){

//迭代,遍历

}



2.  do{

...

}while(条件语句)

do-while与while相比较,至少循环一次,从do执行下来,再判断while的条件,最后决定do的内容还要不要执行。



3. 函数/方法

概念:实现特定功能的语句块

面对过程 - 函数

面对对象 - 方法

作用:

a. 让特定功能通过一个名字带数据能够反复使用,减少代码量

b. 让规模化的代码易于维护

c. 增加代码的复用程度,提高开发效率,降低成本

d. 易于实现程序的结构化、模块化的设计

e. 高内聚、低耦合



函数的定义:

修饰符 函数名([参数...])

{

函数体

}

如: public static void main(String[] args){}

位置:在类的内部,不能在其他函数的内部



修饰符:

public : 如果外部程序想使用

static :如果函数的优先级提高(主函数一定有)

void : 无返回值,是否返回一个明确结果给调用方【如果是int,返回int型结果】



非主函数,不会主动调用,而主函数由操作系统调用



函数的调用:

函数名([参数...]);



函数的参数:

参数是实现调用方与函数信息或数据传递的变量

作用:让程序更灵活

位置:函数名(数据类型 参数1,类型 参数2...)

参数的定义参照变量定义

传参保持三个一致:调用时传的参数和定义时的参数必须在数量、数据类型、顺序一致

形参(形式参数):定义函数时的参数

实参(实际参数):调用函数时的参数

实参和形参必须在数量、数据类型、顺序一致



值传递:

          实参数据拷贝给形参,单向传递,形参改变不会影响实参

地址传递:

实参的内存地址传给形参,双向传递,形参改变会影响实参

函数的返回值:

函数向调用方传递信息(处理结果)

参数可以有很多个,返回值只能有一个

预习:JSON键值对



函数/方法是面对对象编程实现功能的载体,不能将功能代码放在函数/方法之外。

函数调用结束则这些变量所占用的内存会释放,函数未调用之前也不会占用内存空间。

static是静态的,主函数一定有,如果主函数要调用方法,那这个方法必须是静态的,且调动非方法里的变量也必须是静态的



4. 面对对象三大特性:

封装

继承

多态
回复

使用道具 举报

32

主题

33

帖子

175

积分

注册会员

Rank: 2

积分
175
发表于 2022-11-27 22:11:50 | 显示全部楼层
回复

使用道具 举报

15

主题

16

帖子

85

积分

注册会员

Rank: 2

积分
85
发表于 2022-12-14 16:44:37 | 显示全部楼层
永远学习的小周 发表于 2022-11-27 13:00
第四章

1. 开发工具(IDE 集成开发环境)

小菜鸡
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|湖南新梦想 ( 湘ICP备18019834号-2 )

GMT+8, 2023-12-4 00:37 , Processed in 0.044522 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表