Java学习11

news2024/11/26 3:19:15

目录

一.类变量和类方法:

1.类变量定义访问:

2.类变量的使用细节:

3.类方法:

4.静态main方法(public static void main(String [] args)):

二.代码块:

1.基本语法:

2.代码块使用细节与注意事项:

三.单例模式(在程序运行过程中,只能创建一个对象实例):

(1)饿汉式单例模式步骤:

(2)懒汉式:

(3)区别:


一.类变量和类方法:

static变量保存在class实例的尾部,class对象保存在堆中。

static变量是同一个类的所有对象共享,static变量在类加载(new创建实例时类加载)的时候就生成了。

1.类变量定义访问:

(1)语法:

访问修饰符 static 数据类型 变量名;

(2)访问:

类名.类变量名(推荐)或者对象.类变量名

静态变量的访问修饰符的访问权限和范围和普通属性是一样的。

类变量是随着类加载而创建的,没有加载的实例也可以使用。

2.类变量的使用细节:

  • 实例变量不能通过类名.变量名来访问(非静态变量)
  • 类变量在类加载时就初始化了,即使你没有创建对象,只要类加载了,就可以使用类变量了。
  • 类变量的声明周期是随着类的加载而开始,随着类消亡而销毁。

3.类方法:

当方法使用static修饰后,方法就是静态方法,静态方法可以访问静态属性/变量。

(1)语法:

访问修饰符 static 数据返回类型 方法名(){ }(推荐)

static 访问修饰符 数据返回类型 方法名(){ }

(2)类方法的调用:

类名.类方法名或对象名.类方法名

(3)类方法的注意事项与使用细节:

非静态方法不能通过类名调用,类方法不允许使用与类相关的关键字(this、super)。

类方法(静态方法)只能访问静态变量或静态方法,普通成员既可以访问非静态成员(变量、方法),又可以访问静态变量(方法)。

4.静态main方法(public static void main(String [] args)):

(1)main方法是Java虚拟机来调用的,所以访问权限是public。

(2)Java虚拟机在执行main方法时不必创建对象,因此是方法必须是static。

(3)该方法接受String类型的数组参数

(4)main方法可以直接调用main方法所在类中的静态方法或静态属性,不能直接访问该类中的静态成员。

(4)main动态传值:

Edit configurations中的Program argument中填入参数,参数之间要以空格隔开。

二.代码块:

  • 代码块又称为初始化块,属于类中的成员,类似于方法,将逻辑语句封装在方法体中,通过{}包裹起来。
  • 与方法体不同,没有方法名,没有返回,没有参数,只有方法体,而且不用通过对象显示调用,而是加载类时,或创建对象时隐式调用。
  • 相当于另一种形式的构造器(对构造器的补充机制),可以做初始化的操作,如果多个构造器中都有重复的语句,可以抽取到代码块中,提高代码的复用性。
  • 代码块的执行顺序在构造器之前。

1.基本语法:

[修饰符]{

    代码

};

书写注意事项:

  1. 修饰符可选,要写的话,只能写static
  2. 代码块分两类,使用static修饰的叫静态代码块,没有static修饰的叫普通代码块。
  3. 逻辑语句可以为任何逻辑语句(输入、输出、方法调用、循环、判断) 

2.代码块使用细节与注意事项:

  • static代码块也叫静态代码块,作用就是对类进行初始化,而且它随着类加载而执行,并且只会执行一次。如果是普通代码块,每创建一个对象就执行一次。
  • 如果使用类的静态成员,普通代码并不会执行,而静态代码块会执行。
  • 调用静态代码块和静态属性初始化,静态代码块和静态属性初始化调用的优先级一样,如果多个静态代码块和多个静态变量初始化,则按他们定义的顺序调用。(普通代码块)
  • 构造器最前面其实隐含了super()和调用普通代码块,静态代码块在类加载时执行。
  • 静态代码块只能调用静态成员(静态属性和静态方法),普通代码块可以调用任意成员。

类加载:

  1. 创建对象实例(new)
  2. 创建子类对象实例,父类也会被加载。
  3. 使用类的静态成员时(静态属性、静态方法)

创建一个子类对象时,调用顺序如下:

三.单例模式(在程序运行过程中,只能创建一个对象实例):

(1)饿汉式单例模式步骤:

私有化构造器->类的内部创建对象(静态对象)->向外暴漏一个静态的公共方法->通过公共方法获取对象。

public class Stringto{
    public static void main(String[] args){
        girlfriend g = girlfriend.getInstance();//通过方法获取对象
        girlfriend g2 = girlfriend.getInstance();//g与g2是同一个对象
    }
}
class girlfriend{
   private static name;
   private static girlfriend gf = new girlfriend("小静");//类加载时完成静态属性初始化,只会初始化一次
   private girlfriend(String name){
        this.name = name;
   }
   public static girlfriend getInstance(){//只有使用静态对象,才能不创建对象直接调用该方法
          return gf;
   }
}

(2)懒汉式:


public class Stringto{
    public static void main(String[] args){
        Cat c1 = Cat.getInstance();
        Cat c2 = Cat.getInstance();//c1与c2两个对象相同。
    }
}class Cat {
   private String name;
   public static int n1 = 99;
   private static Cat cat;
   private Cat(String name){
         this.name = name; 
   }
   public static Cat getInstance(){  
         if(cat == null){
            cat == new Cat("小可爱");
         }
         return cat;
   }
}
//懒汉式只有当用户使用getInstance时,才返回cat对象。后面再次调用时,会返回上次创建的cat对象。

(3)区别:

  1. 饿汉式在类加载就创建了对象实例,懒汉式是在使用时才创建。
  2. 懒汉式存在线程安全问题,饿汉式存在资源浪费的可能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1563143.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Chatgpt掘金之旅—有爱AI商业实战篇|文案写作|(三)

演示站点: https://ai.uaai.cn 对话模块 官方论坛: www.jingyuai.com 京娱AI 一、前言 人工智能(AI)技术作为当今科技创新的前沿领域,为创业者提供了广阔的机会和挑战。随着AI技术的快速发展和应用领域的不断拓展&…

搜索与图论——Prim算法求最小生成树

在最小生成树问题里&#xff0c;正边和负边都没问题 朴素版prim算法 时间复杂度O(n^2) 生成树&#xff1a;每一次选中的t点&#xff0c;它和集合的距离对应的那条边&#xff0c;就是生成树的一条边 算法流程和dijkstra算法非常相似 #include<iostream> #include<cs…

漏洞扫描神器:Netsparker 保姆级教程(附链接)

一、介绍 Netsparker是一款专业的网络安全扫描工具&#xff0c;用于自动化地发现和修复网站和Web应用程序中的安全漏洞。它提供了全面的安全测试&#xff0c;包括SQL注入、跨站脚本攻击、远程文件包含、命令注入等常见的安全漏洞。 Netsparker具有以下特点&#xff1a; 自动化…

kubeEdge安装初探

1.准备k8s集群 1. 准备一台机器用来部署单节点kubernetes,机器地址192.168.1.10 2. 使用kubekey安装1.27.0版本的kubernetes&#xff1a; apt install conntrack socat export KKZONEcn kk create cluster --with-kubernetesv1.27.0 --container-managercontainerd 2. 安装…

Maplesoft Maple 2024(数学科学计算)mac/win

Maplesoft Maple是一款强大的数学计算软件&#xff0c;提供了丰富的功能和工具&#xff0c;用于数学建模、符号计算、数据可视化等领域的数学分析和解决方案。 Mac版软件下载&#xff1a;Maplesoft Maple 2024 for mac激活版 WIn版软件下载&#xff1a;Maplesoft Maple 2024特别…

C语言第三十八弹---编译和链接

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】 编译和链接 1、翻译环境和运行环境 2、翻译环境 2.1、预处理&#xff08;预编译&#xff09; 2.2、编译 2.2.1、词法分析 2.2.2、语法分析 2.2.3、语义分…

回溯算法|78.子集

力扣题目链接 class Solution { private:vector<vector<int>> result;vector<int> path;void backtracking(vector<int>& nums, int startIndex) {result.push_back(path); // 收集子集&#xff0c;要放在终止添加的上面&#xff0c;否则会漏掉自…

Mysql 常用SQL语句

1、查看mysql中所有的数据库&#xff0c; show databases; 2、创建库 create database 库名;&#xff08;也可以用 create database if not exists 库名; 表示如果库不存在再创建&#xff09; 例&#xff1a;create database if not exists ecology; 3、删除库 …

Visual Studio安装遇到的问题

因为在安装pytorch3d0.3.0时遇到问题&#xff0c;提示没有cl.exe&#xff0c;VS的C编译组件&#xff0c;查了下2019版比2022问题少&#xff0c;下载安装时遇到的问题记录&#xff1a; 查看搜素栏搜时间&#xff0c;查看系统日志&#xff0c;报错为&#xff1a; 创建 TLS 客户端…

农业信息管理(源码+文档)

农业信息管理系统&#xff08;小程序、ios、安卓都可部署&#xff09; 文件包含内容程序简要说明功能项目截图客户端首页我的今日动态动态详情登录修改资料今日价格今日报价注册页 后端管理文章管理用户管理分类管理 文件包含内容 1、搭建视频 2、流程图 3、开题报告 4、数据库…

从智能驾驶全技术供应链看智能驾驶“灵魂”

从智能驾驶全技术供应链看智能驾驶“灵魂” 附赠自动驾驶学习资料和量产经验&#xff1a;链接 智能驾驶主机厂与技术供应链的灵魂之争伴随着智能驾驶技术兴起而来&#xff0c;也伴随着技术供应链的繁荣虽然嘴上很少提起但是行动却很雷厉&#xff0c;首先是扛起民族大旗的华为…

全网营销:提升知名度与市场份额的有效策略

一、什么是全网整合营销&#xff1f; 是指整合产品规划、产品开发、网站建设、网上商店运营、品牌推广、产品分销等一系列电子商务内容的新营销模式&#xff0c;是传统网络、移动互联网、个人电脑互联网的整合。根据目前的观点&#xff0c;是个人电脑移动集成、在线和离线集成…

vue2 列表一般不使用索引删除的原因

在 Vue 中使用索引来删除列表项可能会导致一系列问题&#xff0c;尤其是在处理动态列表时。以下是一些可能的问题和相应的例子&#xff1a; 1. 数据不一致问题 当你使用索引来删除列表中的某个项时&#xff0c;如果列表中的其他项发生了变化&#xff08;比如新增或重新排序&a…

SSM框架学习——Spring事务管理

Spring事务管理 概念 事务&#xff08;Transaction&#xff09;是访问并可能操作各种数据项的一个数据库操作序列&#xff0c;这些操作要么全部执行&#xff0c;要么都不执行&#xff0c;是一个不可分割的工作单元。 事务有如下特性&#xff1a; 原子性隔离性一致性持久性 …

有单片机基础,准备过一遍freertos,之后再学linux

应届生我觉得继续把单片机深入一下比较好。 站在公司的角度思考一下&#xff0c;个人觉得应该有以下结论&#xff1a; 1 大公司具备技术资金等优势&#xff0c;因此喜欢学历好&#xff0c;理论扎实能够攻坚的人。倾向于培养各个领域的专家&#xff0c;共同构建自己产品的竞争…

全流程基于GIS、python机器学习技术的地质灾害风险评价与信息化建库实践应用

将结合项目实践案例和科研论文成果进行讲解。入门篇&#xff0c;ArcGIS软件的快速入门与GIS数据源的获取与理解&#xff1b;方法篇&#xff0c;致灾因子提取方法、灾害危险性因子分析指标体系的建立方法和灾害危险性评价模型构建方法&#xff1b;拓展篇&#xff0c;GIS在灾害重…

基于“遥感+”蓝碳储量估算、红树林信息提取实践技术应用与科研论文写作教程

原文链接&#xff1a;基于“遥感”蓝碳储量估算、红树林信息提取实践技术应用与科研论文写作教程https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247599633&idx5&sn1398cde523f9c5e036e4d478fc1d3388&chksmfa8207f6cdf58ee0a3a2bf652e7ac5cf65636b05f9e…

探索数据库-------MYSQL故障排除与优化

目录 mysql逻辑架构图 一、MySQL 数据库故障 1.1 MySQL 单实例故障排查 1.1.1故障现象 1 1.1.2故障现象 2 1.1.3故障现象 3 1.1.4故障现象 4 1.1.5故障现象 5 1.1.6故障现象 6 1.1.7故障现象 7 1.1.8故障现象 8 1.2MySQL 主从故障排查 1.2.1故障现象 1 1.2.2故障…

【PDF技巧】PDF文件打开密码,如何设置?

想要给PDF文件设置打开密码是保护文件内容不被他人查看的好选择&#xff0c;但是因为每个PDF编辑器不同&#xff0c;大家的简单设置方法都有些不同&#xff0c;不过今天小编给大家分享一个通用的PDF文件设置打开密码的方法给大家。 打开pdf编辑器&#xff0c;我们点击工具栏中…

6000000IOPS!FASS×kunpeng920全新突破

实测数据详见下文 网络环境 前端和后端网均采用100GE网络&#xff0c;管理网采用1Gbps以太网。 前端网和后端网通过不同网段隔离&#xff0c;与管理网物理隔离。 软硬件配置 存储端配置&#xff1a; 客户端配置&#xff1a; 软件配置&#xff1a; 存储集群配置&#xff1a; …