技术帖
JAVA是一门编程语言,在黑马学习的过程中每天需要记录当天学习的知识,以下是我每天的一些内容记录。
第一天:基础语法
关键字:被JAVA语言赋予特定含义的单词
特点:
1:组成关键字的字母全部小写
2:常用的编辑软件会有特别的颜色注明
class.public.static.void
标识符:
标识符:起名字/除了关键字的单词 全部都是标识符
标识符可以自己定义:
规则:字母 数字 _ $
不能以数字开头 不能是关键字
约定俗成习惯:
类名,接口名,:首字母大写,如果包含多个单词,后续每个首字母全部大写
HelloWorld Student
方法名,变量名:首字母小写,如果有多个单词,后续的单词每个首字母都大写
get getSum
常量名:所有的字母全部大写,如果包含多个字母,单词间用_隔开JAVA_HOME
注意事项:
不能以数字开头 int 2b=20
不能是JAVA中的关键字 int class=100
数据类型分类:
a:基本数据类型
b:引用数据类型(类,接口,数组,枚举)
基本数据类型:四类八种
整数:byte 1 -128~127
short 2
int 4
long 8 定义long变量的时候需要加上大写的L
浮点型:float 4 定义float变量的时候需要加上大写的F
double 8
字符:char 2
布尔(boolean) 1
第二天:运算符
内容辅助键:alt+/
A:main方法
main,然后alt+/,回车
B:输出语句
syso,然后alt+/,回车
注释快捷键:
单行 选中注释 ctrl+/,再来一次取消
多行 选中注释 ctrl+shift+/ 取消ctrl+shift+\
ctrl+shift+f 格式化(调整代码格式)
"++""--":自增自减,用于对变量+1或者-1
当++放在变量后面的时候,a自己+1,a++整体不变
int b=a++
当++放在变量前面的时候,a自己+1,++a按整体+1
int b=++a
赋值运算符
基本的赋值运算符:=
扩展的赋值运算符:+=,-=
关系运算符
==,!=,<,>,<=,>=
关系运算符的结果是boolean类型的
逻辑运算符
用于连接关系表达式
与 &,有false则false
或|,有true则true
三元运算符
关系表达式?表达式1:表达式2
第三天:语句
导包快捷键:ctrl+shift+o
If有三种语句:
1:
If(关系表达式){
语句体;
}
2:
if(关系表达式){
语句体1;
}else{
语句体2:
}
3:
if(关系表达式1){
语句体1;
}else if(关系表达式2){
语句体2;
}.....
else{
语句体n+1;
}
switch语句格式:
switch(表达式){
case 值1:
语句体1;
break;
...
default:
语句体N+1;
break;
}
循环语句:
for语句:
for(初始化语句;判断条件语句;控制条件语句){
循环体语句;
}
while语句:
初始化语句;
while(判断语句){
循环语句;
控制条件语句;
}
do...while循环体语句
初始化语句;
do{
循环语句;
控制条件语句;
}while(判断语句);
死循环:
for (;true;){
System.out.println();
}
while(true){
System.out.println();
}
do{
System.out.println();
}while(true);
控制循环的语句break和continue:
break:强制中断循环。
continue:终止本次循环,继续下次循环。
第四天:数组
random(随机数):
使用步骤;
A:导包
import java.util.Random;
B:创建对象
Random r=new Random();
C:获取随机数
int number= r.nextInt(10);
数组的概括:
数组是储存多个变量(元素)的东西(容器)
这多个变量的数据类型要一致
动态初始化:
数据类型[]数组名=new 数组类型[数组长度]
初始化:
整数型:0
浮点型:0.0
布尔型:false
字符型:'/u0000'
静态初始化格式:
数据类型[]数组名=NEW 数据类型[]{元素1,元素2,...元素N}
int [] arr=new int []{1,2,3};
简化格式:
int [] arr={1,2,3};
数组的常见的两个问题:
A:数组索引越界 原因:访问了不存在的索引 ArrayIndexOutOfBoundsException
B:空指针异常 原因:数组已经不再指向堆内存数据了,你还使用数组名去访问元素 nullpointerException
二维数组:
一个元素为一堆数组的数组
定义格式:
A:数据类型[][]数组名;(推荐使用)
B:数据类型 数组名[][];
C:数据类型[]数组名[];
初始化:
A:动态初始化
数据类型[][]数组名=NEW 数据类型[m][n];
m表示的二维数组中一维数组的个数
n表示是一堆数组中元素的个数
B:静态初始化
数据类型[][]数组名=NEW 数据类型[][]{{元素...},{元素...}...}
简化格式
数据类型[][]数组名= {{元素...},{元素...}...}
第五天:引用方法
方法:其实就是完成特定功能的代码块
定义格式;修饰符 返回值类型 方法名(参数类型 参数名,参数类型 参数2...){
方法体;
return 返回值;
}
两个明确:
A:返回值类型 明确功能结果的数据类型
B:参数列表 明确有几个参数,以及参数的数据类型
方法的调用:(有明确返回值的方法调用)
A:单独调用:没有意义
B:输出调用:有意义,但是不够好,因为我可能需要那结果进行进一步的计算
C:赋值调用:推荐方式
注意:方法不能嵌套!
方法的调用:(void修饰的方法调用(没有返回值的调用))
A:只能单独调用
注意:没有返回值的方法后面可以跟return,但是后面不能跟值.意思是程序到这里结束
方法重载:在同一个类中,出现了方法名相同的情况.
方法重载的特点:
方法名相同,参数列表不同.与返回值无关
参数列表不同;
A:参数的个数不同
b:参数对应的数据类型不同
//不能出现方法名相同,并且参数列表也相同!
方法的参数如果是基本数据类型:形式参数的改变不影响实际参数.
形式参数:用于接收实际参数的变量
实际参数:实际参与运算的变量
方法的参数如果是引用数据类型:形式参数的改变将直接影响实际参数.
第六天:断点调试
Debug: 调试断点
先双击想要看的代码的行数的左边,然后右键进入debug as,再点击java application,进入debug界面。
F6是下一步;
F5是进入方法;
左上角会有一个变量变化的图表,可以清楚的看到变量的变化,这样可以完整的看到程序是怎么样运行的,在后期工作中可以用这种方法找出自己代码的错误。
运行完之后,点击左上方的停止按钮,然后退出,再双击刚才的代码左边的断点即可。
第七天:面向对象
定义类:
class Student{
String name;
int age;
String sex;
public void buysomething(){
System.out.println("买东西");
}
}
使用类:
创建一个类的 对象,并去使用 class StudentTest{
public static void main(String[] args){
// 类名 对象名 = new 类名();
Student s = new Student();
System.out.println(s.name); System.out.println(s.age);
成员变量和局部变量的区别:
写的位置不同:
成员变量:类中 方法外
局部变量: 方法内
内存位置不同:
成员变量: 堆
局部变量: 栈
生存周期:
成员变量:随着对象的创建而存在 随着对象的消失而消失
局部变量:随着方法的调用而存在 随着方法的调用完毕而消失
初始化:
成员变量:有默认初始化
局部变量:没有默认初始化 : 所以使用之前必须先赋值。
private: 被private修饰的成员,只能在本类中访问,之外的任何地方不能直接访问。
封装:把不需要对外展示的内容 隐藏起来,并对外提供公共的访问方式。
this:代表的是当前类的当前对象
JAVA11期 吴文波 |
|