1. 梳理总结学习过的知识点(自行总结,内容不限于下列)
1.1 数据类型、表达式
1.1.1 8种基本数据类型:
byte(位) 8 bit (1Byte) 0 -2^7 ~2^7-1
short(短整数) 16 bit (2Byte) 0 -2^15 ~2^15-1
int(整数) 32 bit (4Byte) 0 -2^31 ~ 2^31-1
long(长整数) 64 bit (8Byte) 0 -2^63 ~ 2^63-1
float(单精度) 32 bit (4Byte) 0.0 -2^31 ~ 2^31-1
double(双精度) 64 bit (8Byte) 0.0 -2^63 ~ 2^63-1
char(字符) 16 bit (2Byte) 空 0 ~2^16-1
boolean(布尔值) 1 bit false true、false
1.1.2:转义字符:
\’ 单引号字符
\\ 反斜杠
\n 换行
\f 走纸换页
\" 双引号
\r 回车
\b 退格
\t 制表符
1.1.3逻辑运算符
逻辑运算符主要包括逻辑与( & ),逻辑或( | ),逻辑异或( ^ ),短路与( && ),短路或( || )。所有逻辑运算符的特点是操作数都是布尔类型,并且最终的运算结果也是布尔类型
1.1.4位运算符
~ 按位取反 ~op
& 按位与 op1 & op2
| 按位或 op1 | op2
^ 按位异或 op1 ^ op2
>> op1 按位右移 op2 位 op1 >> op2
<< op1 按位左移 op2 位 op1 << op2
>>> op1 添零右移 op2 位 op1 >>> op2
1.2 程序结构
一个Java程序的基本结构大体可以分为包、类、main()主方法、标识符、关键字、语句和注释等等。
public class First {
public static viod main(String[] args) {
System.out.println("Hello world!");
}
}
1.3 数组应用
数组就是存储数据长度固定的容器,保证多个数据的数据类型要一致。
1.3.1数组初始化
数组的两种常见初始化方式:
动态初始化(指定长度)
静态初始化(指定内容)
动态初始化:
数组存储的数据类型[ ] 数组名字 = new 数组存储的数据类型[数组长度];
数组存储的数据类型 数组名字[ ] = new 数组存储的数据类型[数组长度];
静态初始化
数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3…};
例:
int[] arr = new int[]{1,2,3,4,5};
int[] arr;
arr = new int[]{1,2,3,4,5};
数组定义格式:
数组存储的数据类型: 创建的数组容器可以存储什么数据类型。
[] : 表示数组。
数组名字:为定义的数组起个变量名,满足标识符规范,可以使用名字操作数组。
new:关键字,创建数组使用的关键字。
数组存储的数据类型: 创建的数组容器可以存储什么数据类型。
[长度]:数组的长度,表示数组容器中可以存储多少个元素。
注意:数组有定长特性,长度一旦指定,不可更改。
1.3.2数组的访问
索引: 每一个存储到数组的元素,都会自动的拥有一个编号,从0开始,这个自动编号称为数组索引 (index),可以通过数组的索引访问到数组中的元素。
索引访问数组中的元素:
数组名[索引] = 数值,为数组中的元素赋值
变量 = 数组名[索引],获取出数组中的元素
1.4 类、方法
1.4.1类与对象的基本概念
类与对象时整个面向对象中最基础的组成单元。
类:是抽象的概念集合,表示的是一个共性的产物,类之中定义的是属性和行为(方法);
对象:对象是一种个性的表示,表示一个独立的个体,每个对象拥有自己独立的属性,依靠属性来区分不同对象。
可以一句话来总结出类和对象的区别:类是对象的模板,对象是类的实例。类只有通过对象才可以使用,而在开发之中应该先产生类,之后再产生对象。类不能直接使用,对象是可以直接使用的。
1.4.2类与对象的定义和使用
在Java中定义类,使用关键字class完成。语法如下:
class 类名称 {
属性 (变量) ;
行为 (方法) ;
}
范例:定义一个Person类
class Person { // 类名称首字母大写
String name ;
int age ;
public void tell() { // 没有static
System.out.println("姓名:" + name + ",年龄:" + age) ;
}
}
1.4.3类的方法
方法是类或对象行为特征的抽象,用来完成某个功能操作。在某些语言中也称为函数或过程。
将功能封装为方法的目的是,可以实现代码重用,简化代码
Java里的方法不能独立存在,所有的方法必须定义在类里。
1.4.4方法的声明格式
修饰符 返回值类型 方法名(参数类型 形参1,参数类型 形参2,…){
方法体程序代码
Return 返回值;
}
2. PTA实践总结
选择不少于两个程序示例进行说明,需要发布源代码、测试用例。
谈一下在线刷题的个人感受。
感受:通过完成PTA上老师发布的实践任务,可以及时巩固当天上完课后所学的知识点,大量的代码实践,增强敲代码的熟练度。只有通过不断地实践,亲自敲代码,去发现错误,并自行通过查阅去解决。
2.1示例1
6 sdut-循环-6-统计字符 (II)
首先给出所输入字符的个数N,然后给出N个字符,统计其中英文字母、空格、数字字符和其他字符的个数。
源代码:
import java.util.Scanner;
public class Main{
public static void main (String[] args){
Scanner sc =new Scanner(System.in);
int N=sc.nextInt();
int letters=0;
int blanks=0;
int digits=0;
int others=0;
sc.nextLine();
String myStr=sc.nextLine();
char strs[]=myStr.toCharArray();
for(int i=0;i<strs.length;i++){
char ch=strs[i];
if(ch<='z'&&'a'<=ch){
letters++;
}else if(ch<='Z'&&ch>='A'){
letters++;
}else if('0'<=ch&&ch<='9'){
digits++;
}else if(ch==' '){
blanks++;
}else{
others++;
}
}
System.out.println("letters="+letters);
System.out.println("blanks="+blanks);
System.out.println("digits="+digits);
System.out.println("others="+others);
}
}
测试用例:10
AaZ & 15Az
2.2示例2
7-3 打印所有的水仙花数
编写程序打印出所有的水仙花数。所谓"水仙花数"是指一个三位数,其各位数字立方和等于该本身。例如:153是一个水仙花数,因为153=1^3+5^3+3^3。 输出的数之间用“,”(英文半角的逗号)分割。
源代码:
public class Main{
public static void main(String[] args){
double a,b,c,sum;
int[] arr=new int[4];
int num=0;
for(int i=100;i<=999;i++){
a=Math.pow(i%10,3);
b=Math.pow(i/10%10,3);
c=Math.pow(i/100,3);
sum=a+b+c;
if(sum==i){
arr[num]=i;
num++;
}
}
for(int f=0;f<arr.length-1;f++){
System.out.print(arr[f]+",");
}
System.out.println(arr[arr.length-1]);
}
}
2.5在线评测系统使用感受
不太好用,有些错误莫名奇妙,测试用例时正常,一到提交时就各种报错,并且不会告知错在哪里,导致完成题目的过程中会白白走很多弯路
3. 改进学习方法、措施落实情况(内容可扩展,至少包括以下项)
3.1 除课堂外,遇到不会的问题时会到哪个平台搜索
主要在CSDN进行搜索
3.2 根据记录2个月的每天代码时长,利用excel绘制统计表
3.3 感觉个人的哪些方法还存在不足?哪些方面需要改进?等
Java的语法还不够熟练,缺少练习
4. 你知道csdn么,结合使用情况表述他的优点与不足
知道,目前使用很好,想要搜索的问题及解决方法都能找到解决办法,暂时还没有发现不足
4.1 csdn给你的直观感受是什么?
好用便捷
4.2 csdn你感觉最不舒服的地方是什么?
暂时还没有
4.3 你还利用了哪些平台学习编程知识,他们是哪些网站或资源,优点是什么?
哔哩哔哩,可以学习编程基础,视频比文字更加生动易懂。
5. 你认为影响你学习编程的主要阻力是什么?如何克服!
时间问题,压缩时间
6. 其它(针对课程的学习,请发挥)
今后会更加合理的安排学习编程的时间,高效学习。