前言:作者是一名正在学习JAVA的初学者,每天分享自己的学习笔记,希望能和大家一起进步成长

目录

前言:作者是一名正在学习JAVA的初学者,每天分享自己的学习笔记,希望能和大家一起进步成长

​编辑

运算符(重要)

运算符四则运算

基本数据类型变量间的运算

赋值运算符

比较运算符

逻辑运算符(重要)

流程控制(重要)

1.if

2.if…else…

3.if…else if…else

4.switch 只能做等值判断

5.三元运算符

6.循环结构

while 先判断在做循环

do…while 先循环在做判断

for循环

break

面向对象

面向过程

面向对象

类的属性

类的方法

创建对象的内存结构

局部变量

成员变量

匿名对象

运算符(重要)

运算符四则运算

+、-、*、/ 加减乘除

% 取余

++、–

基本数据类型变量间的运算

1.自动类型提升

当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型

char 、byte 、short -> int -> long -> float -> double

2.强制类型转换

需要强制转换符(),并且精度会有损失。

float f = 1.9f;

int a = (int)f; -> 输出1

赋值运算符

= 、+=、-=、*=、/=、%=

比较运算符

==(等于)、!=(不等于)、>(大于)、>=(大于等于)、<(小于)、<=(小于等于)

逻辑运算符(重要)

&(与):(并且) 多个表达式在进行计算时,每一个表达式都为true的时候,整体的结果是true(即使第一个为false,他还是会继续判断后面的表达式结果)。

&&(短路与): 与&效果一样,不同在于当第一个表达式为false时,不再判断后面的表达式

|(或):每个表达式计算的时候,只要有一个表达式为true,那结果为true

||(短路或): 与|效果一样,

!(取反): !true 为false

流程控制(重要)

1.if

条件表达式的结构一定是true或者false。为true则执行大括号内的语句

语法: if(条件判断表达式){

执行语句

}

2.if…else…

语法: if(条件判断表达式){

执行语句

}else{

执行语句

}

3.if…else if…else

语法: if(条件判断表达式){

执行语句

}else if(条件判断表达式){

执行语句

}else{

执行语句

}

4.switch 只能做等值判断

说明:

switch(表达式){

case 常量1:

执行语句1;

break;

case 常量2:

执行语句2;

break;

default:

执行语句;

Break;

}

5.三元运算符

语法: 逻辑表达式1 ?表达式3:表达式4

String str = score>90?”优秀”:”不优秀”

逻辑表达式1如果运算结果为true,则整个表达式的结果就是表达式3

逻辑表达式1如果运算结果为false,则整个表达式的结果就是表达式4

表达式3和表达式4的结果类型要一致

6.循环结构

while 先判断在做循环

while(表达式(true/false)){

循环体

}

do…while 先循环在做判断

do{

循环体

}while(表达式);

for循环

语法: for(表达式1;表达式2;表达式3){

循环体

}

表达式1: 计数器的初始化,它只初始化一次

表达式2: 循环条件的判断,多次执行

表达式3: 修改计数器,多次执行

break

跳出循环

面向对象

面向过程

分析解决问题所需要的步骤,然后我们用函数来一步一步调用实现。

例子: 把一个大象放进冰箱

面向过程: 1.打开冰箱 2.把大象放入冰箱 3.关上冰箱

面向对象: 1.大象 属性 方法(行走) 2. 冰箱 属性: 方法: (开门、关门)

1.创建一个冰箱, 冰箱自己开门 创建一个大象的对象 大象走进冰箱 这个冰箱关门。

面向对象

OOP(object oriented programming),面向对象。 java认为万物都是对象

: 我们把某些具有相同的属性和行为的事物抽象成一类。

类的属性: 八个基本数据类型,引用数据类型: 类,接口,数组

比如: 狗是一个类,那么阿拉斯加、哈士奇、萨摩耶就是这个类的对象。 犹如模板和样本的关系。通过一个模板可以创建多个样例。(注意点: 类是抽象的概念,对象才是真正的实例)

定义类:(类名称:首字母要大写,驼峰式、见名知意)

class 类名称{

属性

方法

}

创建对象的方法 : 类名 变量名 = new 类名();

通过对象可以访问其方法和属性

类的属性

默认值

数据类型默认值
byte0
short0
int0
long0
float0.0
double0.0
booleanfalse
char
引用数据类型null

引用的数据类型: 类 数组 接口

类的方法

类的行为用函数

public 返回值类型 方法名 (数据类型: 参数名称){

方法体

}

创建对象的内存结构

栈:用于存储基本数据类型的值或者是局部变量。先进后出,存取的容量小,存取的速度快

堆: 用于存储引用的数据类型。存取的容量大,速度慢一些

方法区: 存储引用数据类型,存储一些共享的数据(比如说方法)。

局部基本类型变量:

重点: 对象存储在堆中,引用存储在栈中,堆中的每一个对象的数据都是隔离的。 每一个class加载到数据共享区,jvm会解析这个类的内容,方法是每个对象共享的(属性是独立的,方法是每个对象共享的,但是方法内部的属性是哪个对象调用这个方法,那么这个属性就是哪个对象的)

java是通过gc垃圾回收器来回收。

局部变量

定义: 局部变量是定义在方法中或者语句块中。

属性特点:

作用范围: 只限于所定义的大括号中(以及自括号内)

存储位置: 存储在栈内存中

默认值:无 ,使用时一定要初始化

生命周期: 所属的大括号范围

例子: 所以当dog1=null时,new Dog()这个对象就没人引用了。就会被gc垃圾回收器回收,就是说有可能方法还没有执行完,就被回收了。不过垃圾回收器运行的机制是有jvm判断的。而不是人为操作的。 dog=null,后,不能再使用了,否则会空指针异常。 大括号结束了,局部变量消失了,对象引用也消失了。

成员变量

定义: 成员变量是定义在类中,也可以叫类的属性

除了成员变量其他都是局部变量

属性的特点:

作用范围: 根据权限的修饰符定(public private protected default)

存储的位置: 堆内存中或者数据共享区(这个在static中会提到)

默认值: 有

生命周期: 由jvm通过垃圾回收机制来回收

匿名对象

匿名对象由于没有栈中的变量来引用,所以会被回收掉,所以匿名对象是没有意义的。

今天的笔记分享就到此为止,感谢大家的观看~~