147
社区成员
发帖
与我相关
我的任务
分享1.梳理总结学习过的知识点
1.1数据类型、表达式:
(1)数据类型
java的基本数据类型包括 boolean(布尔型)、float(单精度浮点型)、char(字符型)、byte(字节型)、short(短整型)、int(整型)、long(长整型)和 double (双精度浮点型)共 8 种,
其中
| 类型名称 | 关键字 | 占用内存 | 取值范围 |
|---|---|---|---|
| 字节型 | byte | 1 字节 | -128~127 |
| 短整型 | short | 2 字节 | -32768~32767 |
| 整型 | int | 4 字节 | -2147483648~2147483647 |
| 长整型 | long | 8 字节 | -9223372036854775808L~9223372036854775807L |
| 单精度浮点型 | float | 4 字节 | +/-3.4E+38F(6~7 个有效位) |
| 双精度浮点型 | double | 8 字节 | +/-1.8E+308 (15 个有效位) |
| 字符型 | char | 2 字节 | ISO 单一字符集 |
| 布尔型 | boolean | 1 字节 | true 或 false |
所有的基本数据类型的大小(所占用的字节数)都已明确规定,在各种不同的平台上保持不变,这一特性有助于提高 Java 程序的可移植性。
1)整数类型
Java 定义了 4 种整数类型变量:字节型(byte)、短整型(short)、整型(int)和长整型(long)。这些都是有符号的值,正数或负数。
| 名称 | 说明 |
|---|---|
| 字节型(byte) | byte 类型是最小的整数类型。当用户从网络或文件中处理数据流时,或者处理可能与 Java 的其他内置类型不直接兼容的未加工的二进制数据时,该类型非常有用。 |
| 短整型(short) | short 类型限制数据的存储为先高字节,后低字节,这样在某些机器中会出错,因此该类型很少被使用。 |
| 整型(int) | int 类型是最常使用的一种整数类型。 |
| 长整型(long) | 对于大型程序常会遇到很大的整数,当超出 int 类型所表示的范围时就要使用 long 类型。 |
2)浮点类型
浮点类型是带有小数部分的数据类型,也叫实型。浮点型数据包括单精度浮点型(float)和双精度浮点型(double),代表有小数精度要求的数字。
单精度浮点型(float)和双精度浮点型(double)之间的区别主要是所占用的内存大小不同,float 类型占用 4 字节的内存空间,double 类型占用 8 字节的内存空间。双精度类型 double 比单精度类型 float 具有更高的精度和更大的表示范围。
Java 默认的浮点型为 double。
3)布尔类型
布尔类型(boolean)用于对两个数值通过逻辑运算,判断结果是“真”还是“假”。Java 中用保留字 true 和 false 来代表逻辑运算中的“真”和“假”。因此,一个 boolean 类型的变量或表达式只能是取 true 和 false 这两个值中的一个。
4)字符类型
Java 语言中的字符类型(char)使用两个字节的 Unicode 编码表示,它支持世界上所有语言,可以使用单引号字符或者整数对 char 型赋值。
一般计算机语言使用 ASCII 编码,用一个字节表示一个字符。ASCII 码是 Unicode 码的一个子集,用 Unicode 表示 ASCII 码时,其高字节为 0,它是其前 255 个字符。
Unicode 字符通常用十六进制表示。例如“\u0000”~“\u00ff”表示 ASCII 码集。“\u”表示转义字符,它用来表示其后 4 个十六进制数字是 Unicode 码。
(2)表达式
算术运算符:+ - * / % 及 ++、–
赋值运算符:简单赋值运算符 = ,符合赋值运算符 +=、<<=、>>>=、&= 等
关系运算符:算术比较 >、<= 等,类型比较运算 instanceof,相等关系运算符(可以比较数字、布尔、引用) ==、!=
逻辑运算符:逻辑与 &&、逻辑或 ||、逻辑非 !
条件运算符(表达式1 ? 表达式2 : 表达式3)
1.2程序结构
(1)顺序结构
顺序结构就是程序从上到下一行一行的执行代码,没有判断和中转。
(2)选择结构
有选择性的执行或者跳过指定代码
1)if语句
if 选择语句的四种形式:
有选择性的执行或者跳过指定代码
a. if(条件){…}
判断是否为真如果不为真则直接执行else语句
b. if(条件){…}else{…}
先判断是否为真如果不为真则执行else if 再次判断是否为真 如果都不为真则执行else语句
c. if(条件){…}else if(条件){…}else{…}
if中嵌套一个if 如果外层if为真则运行内层的if 如果外层不为真则运行else
d. if(条件){ if(条件){...} } else {...}
2)switch语句
表达式expr的值必须是下述几种类型之一:
byte、short、int、char、enum(枚举);java7之后可以是String。
case子句中的值const 必须是常量值(或final的变量),case中的值不能是一个范围。
所有case子句中的值应是不同的,否则会编译出错。
default子句是可选的(不是必须的)。
break语句用来在执行完一个case分支后使程序跳出switch语句块;否则会继续执行下去。
3)循环语句
1.循环的分类
while 循环
do/while 循环
for循环
2.循环的组成部分
4. 初始化部分:对循环变量赋初值
5. 循环条件部分:判断循环变量是否超出某个界限
6. 循环体部分:要循环执行的具体逻辑.
7. 更新循环变量部分:修改循环变量的值
while循环
while (循环条件) {语句块(循环体)}
先判断循环条件表达式的值。若为true.则执行循环体,然后再次判断条件并反复执行,直到条件不成立为止。特点:先判断再执行。
do-while循环
do {语句块} while(条件表达式) ;
先执行语句,再判表达式的值,若为true,再执行语句,否则结束循环。
特点:先执行,再判断。
while 和 do-while的区别
while 和 do/while 的区别:
1 执行过程不同
while 先执行循环条件,然后再执行循环体,一句话:先判断,再执行
do/while 先执行循环体 然后再执行循环条件,一句话:先执行,再判断
2 当第一次不满足循环条件的情况下 while循环不能执行循环体, do while 可以执行一次
for循环
for (表达式1 [循环变量初始化]; 表达式2 [循环条件判断]; 表达式3 [更新循环变量]){
循环体
}
首先计算表达式1,接着计算表达式2,若表达式2的值为true,则执行循环体,接着计算表达式3,再判断表达式2的值.
依此重复下去,直到表达式2的值为false。
特点:先判断,再执行。
1.3数组应用
1.3.1数组的定义
1)一维数组:
数据类型[] 数组名称 = new 数据类型[初始化长度大小] {数据1,数据2,....};
2)二维数组:
数据类型[][] 数组名称 = new 数据类型[行的长度] [列的长度] { {多个数据},{多个数据(数据长度保持一致)},....};
1.3.2数组的简单应用
数组本身属于引用数据类型,所以在数组的操作中依然可以进行内存空间的引用传递。
既然数组内容可以进行引用传递, 那么就可以把数组给方法中的参数. 而如果
一个方法要想接收参数, 则对应的参数类型必须是数组。下面首先通过一道简单的
程序来进行说明
1.3.3面向对象编辑方式
1)对象数组:
如果要定义对象数组(以类为例),可以采用如下格式完成。
• 格式:对象数组的动态初始化
类名称 对象数组名称= new 类名称[长度];
如果使用了对象数组的动态初始化, 则默认情况下, 数组的每一个元素都是其对应的默认值null,
都需要分别进行对象的实例化操作。
• 格式:对象数组的静态初始化
类名称 对象数组名称= new 类名称[]{实例化对象,实例化对象, ..}
1.4类、方法
类(Class)
一个 Java 文件中可以定义多个 class 类,但是只能有一个 public 修饰的类。
在一个 Java 文件里定义两个类,其实跟建两个 Java 文件分别定义一个类是一样,建议一个 Java 文件只定义一个类。
1. 修饰词(Modifier)
public 修饰的类名和 Java 文件名要一致。
protected 可以作用在不包中的子类(跨包继承引用)。
无访问修饰符只能作用在同一个包中。
private 本类访问,修饰的成员变量被其他类使用时提供 get/set 方法。
2. 方法(Method)
方法通常是动词。
方法定义在类中方法外,不能嵌套定义,必须定义后调用才会执行。
a. 方法的调用(Calls to Method)
无参数无返回值的方法可以直接调用。
有参数有返回值的方法,调用时需要传递参数值并接收返回值。
成员方法需要创建对象才能调用。
加了 static 的方法是静态方法,可以在定义的本类中直接使用方法名调用,类名可以省略;在成员类中,调用不需要创建对象,静态不能直接访问非静态,无论是成员变量还是成员方法,如果有了 static,都推荐使用类名称进行调用。
b. 参数(Parameter)
实际参数和形式参数的类型必须相同。
Formal Parameter(形参 ):方法定义中的参数。
Actual Parameter(实参):调用方法用的参数。
c.方法的重写与重载(Overriding & Overloading)
方法的重写(Overriding)和重载(Overloading)是 Java 多态性的不同表现。
重写是父类与子类之间多态性的一种表现。
重载可以理解成多态的具体表现形式,构成重载的条件:同一类下,方法名相同,参数列表不同(参数个数,类型,或者顺序不同即可)。
3. 构造方法(Constructor)
构造方法通常是一个名词,和类名一致。
构造方法的作用是初始化对象的成员变量。
如果类中没有定义构造方法,编译器会帮我们加上一个无参构造方法,构造方法可以重载,推荐写上无参构造方法,再使用带参构造,因为 java 虽然有自己默认的构造函数,但是一但这个类编写了自己的构造函数,原来的默认构造函数就不存在了,这时如果再想调用默认构造函数就会出错。
构造方法没有返回值,也不需要 void。
构造方法可以使用四种权限修饰符的任何一种,但不能用 abstract, final, native, static, synchronized 等非访问修饰符,因为构造方法是类。
a. 关键字 this
修饰的变量用于指代成员变量,主要用来区分成员变量和局部变量:
当方法参数和类的成员变量同名时,使用 this.成员变量 代表成员变量;
当方法参数与成员变量异名时,优先指代成员变量,所以有时候也不用加 this。
this(); 调用自身无参构造方法。
2.PTA实践总结
2.1示例一


2.2示例二


2.3在线评测系统使用感受
刚开始使用pta很不习惯,包括使用pta平台出现的各种问题但是在IDEA不会出现这类问题,不能复制粘贴等等……但是也慢慢的习惯了pta上的规范,也能更好地纠正自己不好的习惯之类的,所以感觉这个平台还是可以的。但是还是会有一些烦人的评测系统出现问题,希望能一起优化一起进步。
3.改进学习方法、措施落实情况
3.1除课堂外,遇到不会的问题会用到CSDN等平台进行搜索
3.2根据记录2个月的每天代码时长,利用excel绘制统计表

3.3感觉个人的哪些方法还存在不足?哪些方面需要改进?
感觉自己在学习java的过程中还是没有能够耐心的去刷题学习,希望以后能多花时间改进这方面。
4. 你知道csdn么,结合使用情况表述他的优点与不足
4.1 csdn给你的直观感受是什么?
社区里的成员们都很无私,能够分享自己的学习经验,所以在遇到不会的问题再来csdn一搜基本上就能解决问题。
4.2 csdn你感觉最不舒服的地方是什么?
有些回复需要付费
4.3 你还利用了哪些平台学习编程知识,他们是哪些网站或资源,优点是什么?
pta刷题
b站看网课
5. 你认为影响你学习编程的主要阻力是什么?如何克服!
最主要的阻力是在java的刷题中非常枯燥,没有什么成就感,所以会导致没有耐心一直学。希望以后能克服掉这种没耐心的心理。