个人总结
在这一周学习中比较让我困惑的是: 我跟着老师学习的时候能很好的理解,但是自己独立完成作业的时候就会磕磕碰碰的,思路不够清晰,并且不乏存在因为粗心犯的错误而导致进度卡壳的时刻(例如循环嵌套时位置不对,方法逻辑不够完善等),虽然可以问老师,但我总会觉着想自己琢磨,然而事实是这样真的会浪费很多时间。
学习中,还会有一个做笔记的困惑,因为老师讲一个东西时会先给一些它的概念,然后结合代码实例进行演示从而加深理解,这个过程就涉及到我自己边做笔记边敲代码会遗漏一些老师讲的内容,甚至老师讲快了还会敲不赢代码。基于此,虽然可以通过观看教学视频回放解决这个问题,但我觉着这样确实也太浪费时间了。所以在后面的学习中,我有必要在课后花更多时间去复习,并且在原有基础上更多地去拓展一些细节,在遇到问题时还是要多和同学或老师进行交流。在做笔记方面可以稍微让步,优先听老师的讲解,自己在一天课程结束后再补上未做的笔记。
技术总结
概念
Java是1995年Sun公司发布,如今被Oracle收购
下载安装Java时从Oracle官网下载,最好下载LTS长期维护版本。Java8,Java11,Java17
Java是一门半编译半解释的面向对象语言
由于Java虚拟机JVM的存在,可以全平台运行。
构成
Java平台由Java虚拟机(Java Virtual Machine)和Java 应用编程接口(Application Programming Interface、简称API)构成。Java 应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。Java平台已经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次,就可以在各种系统中运行。Java应用编程接口已经从1.1x版发展到1.2版。常用的Java平台基于Java1.8,最近版本为Java19。
体系
JavaSE(Java2 Platform Standard Edition,java平台标准版)
是java的核心和基础,也是JavaME和JavaEE的核心。可以用于开发桌面端程序。如IDEA就是用java开发的。 JavaEE(Java 2 Platform,Enterprise Edition,java平台企业版)
用于开发WEB应用。Java 的留下全靠JavaEE。WEB应用如门户网站、电子商务、电子政务等服务器都是由JavaEE实现。 JavaME(Java 2 Platform Micro Edition,java平台微型版)。
用于开发移动应用,早期的塞班系统中会使用,如今已经淘汰
输出/变量
class + 类名:可以定义一个类
public + class 那么类的名字必须和.java文件名一致
如 public class Demo03 { }
没有public class,名字任意
如 class 123{}
同一文件中可以定义多个类,但public的类只有一个
class D {
入口方法:main方法
1,入口方法,除了形参可以变,其余不可变 main括号内为形参
2,java文件运行时,一定会执行main方法(入口方法)
public(公开的) static(静止的) void(无效的) main(主要的)(String(字符串)[] args(参数)
System 系统
out 输出单元
println 控制台打印 ln 换行
System.out 中的. : '的'
System.out.println("666");
System.out.print("xxx");
System.out.print("!!!");//没换行输出在一起
no usages : 没有被使用
new * :新建对象
变量 容器用来装载“字面量”(用于表达源代码中一个固定值的表示法)
代码结尾必须用 ; 英文分号
int a = 1 ;
int(数据类型) a(变量名称) = 1(数据值 字面量) ;
int b;
变量声明:数据类型 变量名称
b = 2;
变量初始化:变量名称 = 数据值 字面量
基本数据类型
变量名称书写规则
变量名称 规则(前 ,中后): 1,变量名称开头只能以"_"下划线 或 $(¥ 人民币), 英文字母 定义
2, 变量名称中间只能以“_”下划线 或 $(¥ 人民币符号),英文字母, 数字 定义
nt _admin;// "_"
int $admin;// '$'
int admin;// 小写英文
int Admin;// 大写英文
int ad_min;// "_"
nt ad$min;// '$'
nt admin01;// 小写英文
nt ad01min; // 数字
在方法内,如果一个变量仅仅只声明,那么它不可以被使用 (在方法内,一个变量需要被初始化后才能使用)
int m;
System.out.println(m); (无法使用)
补充 1,变量不能重名
2,变量名称大小写敏感 (区分开)
变量可以多个一起定义
注释
//单行注释:注释一行内容(内容上边,或者结尾右侧)
// 对变量或者常量注释,对某一行代码进行解释
// 快捷方式: Ctrl + /
/* 多行注释:注释一个代码片段 段落(方法、方法中的某几行) */
/* 快捷方式 /* + Enter */
/**
* 文档注释:可以注释一个方法,或者一个类 java独有
* @method main 入口方法
* @param args 形参的使用方式
* 文档注释的快捷方式: /** + Enter
*/
标识符命名规则
标识符 :为”变量,类(接口),方法“ 进行命名的符号
1、标识符的开头只能以_、$、字母
2、标识符的中间和结尾以_、$、字母、数字为主要内容
3、不能以关键字或者特殊字符命名,(长度、大小写、换行)
4、见名知意(对变量进行特殊的名称定义,会帮助我们或者其他开发者理解程序功能,翻译软件)
标识符常见的命名方式:1、驼峰法 我的苹果 ==> my apple ==> myApple小驼峰法 MyApple大驼峰法
首写字母小写 :小驼峰法 主要用于变量、方法命名
首写字母大写 :大驼峰法 主要用于类 或者接口命名
2、下划线隔断法 我的苹果 ==> my_apple
中间加下划线
位运算
二进制 (八进制,十六进制)
二进制与十进制之间的转化
& 按位与 :二进制比较,对位都为1结果为1
| 按位或 :二进制比较,对位都为0结果为0
System.out.println(3 & 7);
System.out.println(3 | 7);
^ 异或: 二进制比较,对位不相同结果为1
System.out.println(3 ^ 7);
了解:(乘除法)
//~ 非位: 把所有二进制位取反(包含了符号位)
System.out.println(~6);
移位运算 >>> <<<
三目运算表达式
三目运算表达式结构
条件 ? 选项1 : 选项2
返回值是选项1或者选项2的值
描述:当条件成立时,返回选项1的值,否则返回选项2的值
int age = 5;
String tip = age < 6 ? "禁止入内":"欢迎进入";
if语句
if语句(如果)
格式:if(布尔表达式){ 执行语句 }
描述:如果布尔表达式成立,就会执行“执行语句”,否则直接跳过这一次判断
if...else 语句
格式:if(布尔表达式){ 执行语句 }else{ 执行语句 }
描述:如果布尔表达式成立,就会执行if中的“执行语句”,否则执行else中的“执行语句”
案例:大于等于60分:成绩及格 小于60分:不及格
if...else if 语句
格式:if(布尔表达式){ 执行语句 }else if(布尔表达式){ 执行语句 }
描述:如果if中布尔表达式成立,就会执行if中的“执行语句”
如果else if中布尔表达式成立,就会执行else if中的“执行语句”
随着条件的增多,我们可以增加else if的数量。
switch语句
switch语句格式:switch(数据值或变量){ case 值1:...; case 值2 :...;... }
选项卡:选择1 选择2 选择3...
注意:
1、switch括号中一般是变量,变量需要指定特殊的数据类型(byte short int char String(Character))
switch不可以设置的类型有:long,double,float
2、有无break的情况(break 跳出(停止)switch语句),没有break情况,程序会继续往后执行。
3、关于if语句与switch的区别:switch不能判断范围条件.
4、default 除了case之外的其他条件,(default为了程序健壮性)
for循环
for循环格式 for(初始化内容;结束循环条件;变化方式){...}
初始化内容:int i = 0
结束循环条件: i < 5 (布尔表达式)
变化方式: i++
while 循环
while循环格式 while(布尔表达式){ ... }
while循环特殊形式
while死循环
while(true){}
数组 :
简单定:义将一类数据方到一个整体中
专业定义:将数据类型相同的数据,放到一个集合中
数组的定义方式:1、静态初始化 2、动态初始化
1、静态初始化 : 在构建数组时就给予初始化的值
数组类型: 数据类型[]、变量[]
数组初始化 {数组元素,数组元素,....}
int[] a = {1,2,3};//1、数组有3个元素长度 2,里面的元素有哪些
int b[] = {1,2,3};
2、动态初始化 :先构建数组的对象,然后在逐一赋值初始化
基本格式: 数据类型[] 变量名 = new 数据类型[数组的长度]
int[] c = new int[3];//1、数组有多长
注意:数组的类型决定了元素是什么样的类型