首页 > 编程语言 >Java学习记录(二)

Java学习记录(二)

时间:2024-08-11 13:54:27浏览次数:12  
标签:Java 记录 对象 数据类型 学习 静态 内存 数组 方法

方法

方法分为有参方法和无参方法

方法就是行为就是功能

无参方法:

有参方法:

返回值

返回值可以分为有返回值和无返回值

void表示无返回值

return表示返回返回值

return不具有打印输出功能

例如:

重载

重载就是方法名一致但是参数列表不一致,重载之后的方法名可以重名使用

比如:

数组

数组语法

一个变量中可以存放一个数据,而一个数组中可以存放多个数据

语法格式:

数据类型 [] 数组名 = new 数据类型 [数组长度]

数据类型 [] 数组名 = new 数据类型 [] {数组元素}

数据类型 [] 数组名 = {数组元素}

数组求最值问题

最大值:

最小值:

如果当前元素大于或小于指定元素,就将两个元素换位,这样就可以得出最大值和最小值

冒泡算法:

封装

面向对象之封装

再程序中使用面向对象来映射现实中的事务,使用对象关系来描述事务之间的关系,这就是面向对象思想

何为对象?

万物皆是对象,对象在程序中是new出来的 先有的类后有的对象

类和对象的关系:对象属于类

类:是一类事物的统称,是一个抽象的概念

对象:对象是实例也叫实体

例如:

定义了一个吃饭的方法,在测试类中创建这个对象就可以使用这个对象中的方法

面向对象的三大特征:封装 继承 多态

封装:隐藏实现细节,仅对外提供访问式setter/getter方法,封装又称为私有的

关键字:peivate

注意:在编写类的时候可以在一个.java文件中写多个类,但是只能由一个被public修饰的类,更可以分开写

访问修饰符

static关键字&静态代码块

static表示静态的

static修饰的变量为静态变量来修饰的方法称为静态方法

特点:

        1、静态只能访问静态不能访问非静态

        2、静态不能和this,super等关键字共存

        3、静态随着类的加载而加载

        4、静态可以由类名直接访问

通过这两个类可以证明特点1和特点4

而特点2和特点3是优先级的问题

静态代码块>构造代码块>构造函数>普通函数

静态代码块只会执行一次

继承

用子类去继承父类,关键字是extends

可以使用父类的公有的属性和方法减少冗余代码

父类:

子类:男人类

子类:女人类

测试类:

final关键字的使用

特点:

        1、final修饰的类不能被继承

        2、final修饰的方法不能被重写

        3、final修饰的变量是常量,只能赋值一次

堆栈方法运行时常量池

通过代码可以看出==对比的时候要对比内存地址,所以在用==的时候大多数情况用来比较数字

栈内存(Stack Memory)

栈内存主要用于存储线程执行方法时的局部变量(包括基本数据类型变量和对象引用),以及方法执行完毕后自动释放的空间。每个线程都有自己的栈内存,栈内存是线程私有的,它的生命周期与线程相同。

特点:

  • 存储的是基本数据类型的变量(如 int, boolean, char 等)和对象的引用。

  • 变量的作用域仅限于其所属方法。

  • 方法执行完毕后,栈内存中的数据会被自动释放,因此栈内存空间可以高效地管理和释放。

堆内存(Heap Memory)

堆内存用于存储Java程序中的对象实例和数组。所有通过 new 关键字创建的对象和数组都存储在堆内存中。

特点:

  • 存储的是对象实例及数组。

  • 堆内存是所有线程共享的,任何线程都可以访问堆中的对象。

  • 对象的生命周期不由代码块控制,而是由垃圾回收器(Garbage Collector)来管理。当没有引用指向一个对象时,该对象就会被垃圾回收器回收,释放其占用的堆内存空间。

区别和使用场景:

  1. 栈内存

    • 用于存储局部变量和方法调用的部分信息。

    • 内存管理由编译器自动分配和释放,具有很快的访问速度和自动释放特性。

    • 存储的数据大小和生命周期都是确定的,不需要额外的垃圾回收机制。

  2. 堆内存

    • 用于存储对象实例和数组,大小不固定,可以动态分配。

    • 内存管理由垃圾回收器负责,自动处理对象的创建和销毁,因此更灵活但也更复杂。

    • 对象的生命周期不受方法的限制,可以在程序的不同部分使用和引用。

字符串常量池(String Pool)

字符串常量池是Java中的一个特殊存储区域,用于存储字符串常量。在Java中,字符串是不可变的,即一旦创建了一个字符串对象,它的值就不能被修改。这种特性使得Java能够在运行时对字符串常量进行优化和重用,从而提高内存利用率和性能。

标签:Java,记录,对象,数据类型,学习,静态,内存,数组,方法
From: https://blog.csdn.net/m0_70862775/article/details/141104667

相关文章

  • Java最新面试题2024,Java八股文2024
    一.基础篇1.Java语言特点1、简单易学、有丰富的类库2、面向对象(Java最重要的特性,让程序耦合度更低,内聚性更高)3、与平台无关性(JVM是Java跨平台使用的根本)4、可靠安全5、支持多线程2.面向对象和面向过程的区别面向过程:是分析解决问题的步骤,然后用函数把这些步骤一步......
  • 时尚美妆化妆品电商商城网站-计算机毕设Java|springboot实战项目
    ......
  • Java数组小白版
    一、数组概念一、数组定义数组就是指在计算机内存中开辟的连续存储空间,用于存放程序运行中需要用到的一组相同类型数据的容器。二.数组的声明+数组的长度定义数组时需要确定数组的长度(元素的个数),确定后不能更改;获取数组长度:数组名.length1.格式1(默认初始值)数据类型[]......
  • 499 道 Java 面试题 (附答案):JVM+ 分布式 + 算法 + 锁 +MQ
    Spring如何管理事务的。Spring怎么配置事务(具体说出一些关键的xml元素)。说说你对Spring的理解,非单例注入的原理?它的生命周期?循环注入的原理,aop的实现原理,说说aop中的几个术语,它们是怎么相互工作的。Springmvc中DispatcherServlet初始化过程。netty......
  • Java秋招校招面试
    本人学习两个月Java总结面试找到工作,整理了如下面试题目(只适合找一份非大厂工作!!)(多背多面)祝愿大家找到满意的工作该版本为简洁-以及-大家独立思考只给出题目,大家可以根据题目自行搜索,如不想搜索可以私信我给大家发带答案版本的,本人学习两个月Java总结面试找到工作,整理了如下面试......
  • Java自动化测试框架-05 - 来给你的测试报告化个妆整个形 - (上)(详细教程)
    1.简介前边通过宏哥的讲解和分享想必小伙伴们和童鞋们都已经见过testng框架生成的测试报告,是不是它的样子和长相实在是不敢让大家伙恭维。那么今天宏哥就当一回美容师,由宏哥来给它美美容;当一回外科医生,做一名整形医生。由宏哥来主刀,给它整整形。让她变得丰满、美丽、可爱......
  • JavaL1-07_综合练习
    练习一:需求:    机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。    按照如下规则计算机票的价格:旺季(5~10月)头等舱9折,经济舱8.5折,淡季(11月~来年4月)头等舱7折,经济舱6.5折。代码示例:packagecom.itheima.test;importj......
  • 【Java毕设选题推荐】基于SpringBoot的springbootOA公文发文管理系统
    前言:我是IT源码社,从事计算机开发行业数年,专注Java领域,专业提供程序设计开发、源码分享、技术指导讲解、定制和毕业设计服务......
  • 【Java毕设选题推荐】基于SpringBoot的协同过滤算法美食推荐小程序
    前言:我是IT源码社,从事计算机开发行业数年,专注Java领域,专业提供程序设计开发、源码分享、技术指导讲解、定制和毕业设计服务......
  • Java - 多线程
    三种实现方式常用成员方法1.线程name默认“Thread-”+"序号"2.可以通过重写构造方法在创建时给线程命名线程的生命周期与状态同步代码块格式synchronized(锁对象){操作共享数据的代码}1.锁对象随机,但只要是有static修饰的唯一对象,一般写本类class文件,如MyTh......