JAVA学习笔记- - - day 1

简介: # 运算符(重要)## 运算符四则运算 +、-、*、/ 加减乘除% 取余++、--### 基本数据类型变量间的运算1.自动类型提升 当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型 char 、byte 、short -> int -> long -> float -> double2.强制类型转换 需要强制转换符(),并且精度会有损失。 float f = 1.9f; int a = (int)f; -> 输出1# 赋值运算符 = 、+=、-=、*=、/=、%=#

运算符(重要)

运算符四则运算

+、-、*、/  加减乘除

% 取余

++、--

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

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 类名();

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

类的属性

  默认值  

数据类型 默认值
byte 0
short 0
int 0
long 0
float 0.0
double 0.0
boolean false
char ''
引用数据类型 null

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

类的方法

类的行为用函数

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

     方法体

     <return 返回值>

}

创建对象的内存结构

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

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

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


局部基本类型变量:

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

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

局部变量

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

           属性特点:

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

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

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

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

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

成员变量

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

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

       属性的特点:

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

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

            默认值: 有

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

匿名对象

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


目录
打赏
0
0
0
0
1
分享
相关文章
Java基础学习笔记——idea篇
JDK由JRE(包含JVM和核心类库)和开发工具箱(如javac编译器和java运行工具)组成。Java项目结构包括Project、Module、Package和Class。IDEA快捷键包括:生成main方法(main psvm)、复制代码(Ctrl+D)、删除代码(Ctrl+Y/X)、格式化代码(Ctrl+Alt+L)、重命名(Shift+F6)等。
107 0
2025 年 Java 从入门到精通学习笔记全新版
《Java学习笔记:从入门到精通(2025更新版)》是一本全面覆盖Java开发核心技能的指南,适合零基础到高级开发者。内容包括Java基础(如开发环境配置、核心语法增强)、面向对象编程(密封类、接口增强)、进阶技术(虚拟线程、结构化并发、向量API)、实用类库与框架(HTTP客户端、Spring Boot)、微服务与云原生(容器化、Kubernetes)、响应式编程(Reactor、WebFlux)、函数式编程(Stream API)、测试技术(JUnit 5、Mockito)、数据持久化(JPA、R2DBC)以及实战项目(Todo应用)。
81 5
# 【Java全栈学习笔记-U1-day02】变量+数据类型+运算符
本篇笔记主要围绕Java全栈学习的第二天内容展开,涵盖了变量、数据类型、运算符以及Scanner类的应用。首先介绍了变量的概念与命名规范,以及如何定义和使用变量;接着详细讲解了Java中的基本数据类型,包括整型、浮点型、字符型、布尔型等,并通过实例演示了数据类型的运用。随后,深入探讨了各类运算符(赋值、算术、关系、逻辑)及其优先级,帮助理解表达式的构成。最后,介绍了如何利用Scanner类实现用户输入功能,并通过多个综合示例(如计算圆面积、购物打折、变量交换及银行利息计算)巩固所学知识。完成相关作业将进一步加深对这些基础概念的理解与实践能力。
63 12
|
11月前
|
Java学习笔记 List集合的定义、集合的遍历、迭代器的使用
Java学习笔记 List集合的定义、集合的遍历、迭代器的使用
177 4
【Java全栈学习笔记-U1-day01】Java介绍
本笔记整理了Java学习的基础内容,涵盖程序理解、Java语言特性、JDK安装与配置、Java程序开发工具及编写步骤。重点介绍了Java程序的基本结构、编译和运行过程,以及输出语句的使用。通过实例演示了IDEA创建Java程序的方法,并强调了编码规范和注意事项。适合初学者复习和交流学习。 主要内容: 1. 理解程序:计算机组成、程序定义。 2. 简介:Java语言特点、技术平台、JDK作用。 3. 编写Java程序:编写、编译、运行步骤,基本结构。 4. 输出语句 5. DEA使用:新建工程、保存位置、文件介绍、新建类。 6. 扩展:注释、代码规范、大小写敏感、缩进等。
Java修仙之路,十万字吐血整理全网最完整Java学习笔记(基础篇)
从Java环境的搭建到实际代码的编写,从基本用法的讲解到底层原理的剖析,深度解析Java基础知识。本文是《Java学习路线》专栏的起始文章,旨在提供一套完整的Java学习路线,覆盖Java基础知识、数据库、SSM/SpringBoot等框架、Redis/MQ等中间件、设计模式、架构设计、性能调优、源码解读、核心面试题等全面的知识点,并在未来不断更新和完善,帮助Java从业者在更短的时间内成长为高级开发。
Java修仙之路,十万字吐血整理全网最完整Java学习笔记(基础篇)
Java修仙之路,十万字吐血整理全网最完整Java学习笔记(进阶篇)
本文是Java基础的进阶篇,对异常、集合、泛型、Java8新特性、I/O流等知识进行深入浅出的介绍,并附有对应的代码示例,重要的地方带有对性能、底层原理、源码的剖析。适合Java初学者。
Java修仙之路,十万字吐血整理全网最完整Java学习笔记(进阶篇)
Spring 框架的介绍(Java EE 学习笔记02)
Spring是一个由Rod Johnson开发的轻量级Java SE/EE一站式开源框架,旨在解决Java EE应用中的多种问题。它采用非侵入式设计,通过IoC和AOP技术简化了Java应用的开发流程,降低了组件间的耦合度,支持事务管理和多种框架的无缝集成,极大提升了开发效率和代码质量。Spring 5引入了响应式编程等新特性,进一步增强了框架的功能性和灵活性。
160 0
|
11月前
|
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)
118 3
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(上)
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)
512 3
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(上)
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等