147
社区成员
发帖
与我相关
我的任务
分享1. 梳理总结学习过的知识点(自行总结,内容不限于下列)
1.1 数据类型、表达式
一:基本数据类型:byte、short、int、long、float、double、char、boolean
二:引用数据类型: 数组、类、接口。
级别从低到高为:byte,char,short(这三个平级)——>int——>float——>long——>double
自动类型转换:从低级别到高级别,系统自动转的;
强制类型转换:把一个高级别的数赋给一个别该数的级别低的变量;
三:运算符号:
①、算术运算符。
+ — * / %
%:任何整数模2不是0就是1,所以只要改变被模数就可以实现开关运算。
+:连接符。
++,——
②、赋值运算符。
= += —= *= /= %=
③、比较运算符。
特点:该运算符的特点是:运算完的结果,要么是true,要么是false。
④、逻辑运算符。
& | ^ ! && ||
逻辑运算符除了 ! 外都是用于连接两个boolean类型表达式。
&: 只有两边都为true结果是true。否则就是false。
|:只要两边都为false结果是false,否则就是true
^:异或:和或有点不一样。
两边结果一样,就为false。
两边结果不一样,就为true.
& 和 &&区别: & :无论左边结果是什么,右边都参与运算。
&&:短路与,如果左边为false,那么右边参数不参与运算。
| 和|| 区别: |:两边都运算。
||:短路或,如果左边为true,那么右边不参与运算。
⑤、位运算符:用于操作二进制位的运算符。
& | ^
<< >> >>>(无符号右移)
1.2 程序结构
一:Java程序的基本结构大体可以分为包、类、main()主方法、标识符、关键字、语句和注释等等。
二:注释:可以提高程序的可读性,注释包含的文字不会对程序产生任何影响,在Java中,代码注释主要有以下几种:
1. 单行注释
“//”为单行注释标记,从“//”开始到换行为止的所有内容均被注释而被编译器忽略。
// 这是一条单行注释
2. 多行注释
“/* /”为多行注释标记,符号“/”与“/”之间的所有内容均为注释内容,可以换行。
/ 注释内容1 注释内容2 … /
3. 文档注释
“/* /”为文档注释标记。符号“/**”与“/”之间的内容均为文档注释内容。格式与多行注释相同。
条件语句(If语句,If...else if...语句)
switch语句
switch(表达式){
case值1:{}
case值2:{}
}
:(如需跳出用break)
三:循环语句
1.
while(条件){
}
2.
do {
}
while(条件)
3.
for(条件){
}
四:跳转语句
1.break
结束循环,break可以用于循环,switch选择结构,函数
2.continue
立即跳出本次循环,继续下一次循环。
五:循环嵌套
1.3 数组应用
一:数组的定义
数组是可以保存一组数据的一种数据结构,它本身也会占用一个内存地址,因此数组是引用类型。定义数组的语法格式如下:
数据类型[] 数组名;
对于数组的声明也可用另外一种形式,其语法格式如下:
数据类型 数组名[];
二: 静态初始化
两种方式,具体示例如下:
int[] arr; // 声明一个int类型数组
arr = new int[]{1,2,3,4,5}; // 静态初始化数组
int[] arr = new int[]{1,2,3,4,5}; // 声明并初始化数组
对于数组的静态初始化也可简写,具体示例如下:
int[] arr= {1,2,3,4,5}; // 声明并初始化一个
静态初始化数组,其中大括号包含数组元素值,元素值之间用逗号“,”分隔。
三:动态初始化
动态初始化是指由程序员在初始化数组时指定数组的长度,由系统为数组元素分配初始值。
数组动态初始化的具体示例如下:
int []arr=new int [5] //动态初始化数组
数组声明的同时分配一块内存空间供该数组使用,数组长度是5.
四:数组长度与遍历
长度:数组名.length
遍历:for(int i=0;i<数组名.length;i++) {
System.out.println(数组名[i]);
}
四:二维数组
二维数组的声明:
int[][] arr;
int arr[][];
二维数组动态初始化的实例如下:
arr=new int[2][2]; // 动态初始化2*2的二维数组
arr[0]={1, 2}; // 初始化二维数组的第一个数组的元素
arr[1]={3, 4}; // 初始化二维数组的第二个数组的元素
二维数组静态初始化:
arr=new int[][]{
{1},
{2, 3},
{4}
};
1.4 类、方法
一:面向对象思想
面向对象思想是人类最自然的一种思考方式,它将所有预处理的问题抽象为对象,同时了解这些对象具有哪些相应的属性以及展示这些对象的行为,以解决这些对象面临的一些实际问题,这样就在程序开发中引入了面向对象设计的概念,面向对象设计实际上就是对现实世界的对象进行建模操作。
面向对象的特点主要可以概括为封装性、继承性和多态性
二
Java中的方法定义在类中,一个类可以声明多个方法。方法的定义由方法名、参数、返回值类型以及方法体组成。
2.方法的调用
方法在调用时执行方法中的代码,因此要执行方法,必须调用方法。如果方法有返回值,通常将方法调用作为一个值来处理。如果方法没有返回值,方法调用必须是一条语句。
2. PTA实践总结
选择不少于两个程序示例进行说明,需要发布源代码、测试用例。
谈一下在线刷题的个人感受。
2.1示例1
import java.util.Scanner;
public class Main{
public static void main(String[]age){
int a;
Scanner sc=new Scanner(System.in);
int b=0;//正数
int c=0;//负数
int d=0;//和
int count=0;
while(true){
a=sc.nextInt();
if(a==0){
break;
}else if(a>0){
b++;d=d+a;
}else {
c++;d=d+a;
}count++;
}
double e=d/(double)(count);
System.out.println(b);
System.out.println(c);
System.out.println(d);
System.out.println(String.format("%.2f",e));
}
}
测试用例
1 2 3 -1 -2 -3 0
运行结果
3
3
0
0.00
以上是输入若干个(1个以上)整数,以0结束,统计读入的正数以及负数的数量,并计算输入的数值的总和及平均值(不对0计数)。
首先定义主方法
运用各种代码进行运算得到想要的结果
然后打印出来
2.2示例2
... import java.util.Scanner;
public class Main{
public static void main(String[]args){
Scanner sc=new Scanner(System.in);
int a=sc.nextInt();
int A=a;
int b=0;
while(true){a=a/10;
b++;
if(a==0){break;}
}
int c=0;
for(int i=0;i<b;i++){
int d=A%10;
A=A/10;
c=c*10+d;
}System.out.println(c);
}
}
测试用例
5236
运行结果
6325
以上是输入一个正整数,按数字的相反顺序输出。
2.5在线评测系统使用感受
能够非常方便实时将自己编写的程序代码进行运行测试,检测自己的代码是不是可以符合题目要求,如果符合便可以直接提交,感觉不方便的就是不能知道自己错哪里了,导致有时候会因为不知道哪个测试点而去修改代码,但却查不出错误的地方,有时候非常浪费时间,但总体来说还是非常方便实用的。
3. 改进学习方法、措施落实情况(内容可扩展,至少包括以下项)
3.1 除课堂外,遇到不会的问题时会到哪个平台搜索
百度,qq平台询问老师,bilibili
3.2 根据记录2个月的每天代码时长,利用excel绘制统计表
平均每天一个小时,节假日后会出现松懈,会出现几天不想敲代码的心情低落感。
3.3 感觉个人的哪些方法还存在不足?哪些方面需要改进?等
...知识点不够丰富,做作业有一点拖拉,敲代码不够细心,上课应该提前预习并且下课后进行课外拓展,在面对题型的时候不能够快速理解题目要求,着落点不能够快速切入
4. 你知道csdn么,结合使用情况表述他的优点与不足
知道,上面有很多的大神对java知识点进行讲解,通俗易懂,也可以与他们实时交流问题,解答自己的困惑,暂时没有感到有什么地方不好用
4.1 csdn给你的直观感受是什么?
大神多,有不会的问题可以去查找
4.2 csdn你感觉最不舒服的地方是什么?
有许多种语言代码,有时候会分不清
4.3 你还利用了哪些平台学习编程知识,他们是哪些网站或资源,优点是什么?
哔哩哔哩,有博主进行视频讲解,可以更方便的理解java,可以帮助自己理解上课没听懂的知识点和错过的知识点
5. 你认为影响你学习编程的主要阻力是什么?如何克服!
自身的懒惰和拖延症,学习java应该勤奋敲题目,才能够面对难题时临危不乱。
6. 其它(针对课程的学习,请发挥)