对static新的认识
学习java时,我首先声明了一个统一响应结果的实体类:
public Result success(Object object){
Result result = new Result();
result.code=1;
result.msg="success";
result.data=object;
return result;
}
然后调用了它:
public Result list(){
System.out.println("查询全部的部门数据");
List<Dept> deptList = DeptService.findAll();
return Result.success(deptList);
}
结果程序爆红:
无法从 static 上下文引用非 static 方法 'success(java.lang.Object)'
查询得知原来是因为没使用静态方法
那什么是静态方法什么又是非静态方法?
非静态方法:需要通过类的实例来调用
声明 public Result success(Object object)后,调用它时需要先声明一个实体类:
Result result = new Result();
result.success(deptList);
静态方法:可以直接通过类名调用,无需创建实例
而声明public static Result success(Object object)后则可直接调用:
Result.success(deptList);
如此看来static还是很神奇的,我不禁开始联想它的含义,static直译过来就是静态,那它是不是就是静止不动的意思呢?
实际上static有固定不变的含义。最开始static出现在C语言中:被它修饰的字段具有存储固定性,即静态变量在内存中的位置是固定的,这意味着
它只有一份内存拷贝
→ 所有实例共享这一份拷贝
→ 属于类本身而不是实例
→ "类级别"的概念
这就与实例级别区分开啦:
- 有static修饰的就是类级别,比如Student,不用先声明,可以直接调用
- 而没有static修饰的也就是非静态类,例如student,需要先new一个才能调用
对static新的认识的更多相关文章
- java8中接口default、static新特性,与抽象类区别
之前Java接口中的方法默认都是public abstract,成员变量默认都是public static final,偶然发现接口中可以有default类型的方法,才知道java8中接口可以有自己的 ...
- [C#6] 1-using static
0. 目录 C#6 新增特性目录 1. 老版本的代码 1 using System; 2 3 namespace csharp6 4 { 5 internal class Program 6 { 7 ...
- 探索C#之6.0语法糖剖析
阅读目录: 自动属性默认初始化 自动只读属性默认初始化 表达式为主体的函数 表达式为主体的属性(赋值) 静态类导入 Null条件运算符 字符串格式化 索引初始化 异常过滤器when catch和fin ...
- windows cmd: 打开windows系统程序或服务的常见命令
Windows常用CMD命令 http://www.cnblogs.com/sbaicl/archive/2013/03/05/2944001.html 其实查找Windows自带程序的命令行很简单, ...
- 【Django】Web应用开发经由
[Django开发经由] 本来以为看完网上的入门教程之后就可以看书详细学习一下,没想到手头上的这本书也讲得不是太详细..无奈,不过好在这本书从无到有建立一个网站的流程还算可以,就以这个角度简单记录一下 ...
- Android开发过程中的坑及解决方法收录(四)
1.某个控件要放在Linearlayout布局的底部(底部导航条) <LinearLayout xmlns:android="http://schemas.android.com/ap ...
- linux固定IP
在新安装的Linux系统命令行下, 敲入:ifconfig,显示如下界面. 上面这张图显示网卡没有启动,那么我们敲入代码:ifup eth0启动网卡. 网卡启动后,我们可以看出,IP地址和网关等其他信 ...
- C#语法糖(Csharp Syntactic sugar)
目录 一.C#语法糖大汇总 1. 经过简化的Property2. 经过两次变异的委托写法3. 集合类的声明4. 集合类各个项的操作5. using == try finally6. 可爱的var7. ...
- Python学习---django-debug-tools安装
[官网]http://django-debug-toolbar.readthedocs.io/en/1.2/installation.html [更多安装参考]http://blog.csdn.net ...
- 回首C语言关键字(~回首向来萧瑟处~)
开篇废话: 本文意在回顾 C 语言中的关键字,整理文件发现当时做的这些笔记还是蛮用心的,有临摹 前辈的足迹也有自己的理解和体会.时至今日2018已经跨过一半,对不起过去半年,今天 拿这篇关键字开篇,开 ...
随机推荐
- iPaaS混合集成平台,打造数字化生态
如今企业分工越来越细,上下游合作越来越紧密.各企业之间的业务系统需要相互协作完成业务.外部API依赖越来越多.同时企业系统运行在多个混合云环境及SaaS中,私有端大量业务系统与云端系统形成了错综复杂的 ...
- 企业API网关适用业务场景
什么是企业级API网关 企业级API网关是一种用于管理.保护和监控企业内部和外部API(Application Programming Interface)的解决方案.它提供了一套统一的接入点,帮助企 ...
- win10系统出现电脑关机后自动重启的解决方法
有msdn官网的用户不知道怎么了,在win10系统中点了关机以后,电脑却直接重启了.小伙伴怀疑是因为一些软件正在运行占用系统资源导致的,所以又在点击关机之前退出了所有软件,但是点击关机后电脑还是又重启 ...
- 使用Thread实现可以突破系统最小时间间隔的Timer
使用System.Timers.Timer和System.Threading.Timer创建的计时器会受系统最小时间间隔限制,在 Windows 系统中,默认的最小时间间隔为 15.6 毫秒(数据来自 ...
- CVE-2022-41678 后台代码执行漏洞 (复现)
执行docker compose up -d启动容器 访问ip:8161 默认账密admin/admin登录后台 复现方法1: 通过修改 Log4j 配置写入任意文件 执行python3 poc.py ...
- C# 调用C++库引发不得不说的事
第三方引用库使用方式有两种1.动态库(DLL),2.静态库(Lib) 区别: 静态库:我们的程序在链接时会把用到的静态库全部都链接进去,形成一个exe,这也导致我们的exe很大(程序是先编译,再链接库 ...
- PostgreSQL 约束
NOT NULL 约束: 默认情况下,列可以保存为 NULL 值.如果您不想某列有 NULL 值,那么需要在该列上定义此约束,指定在该列上不允许 NULL 值. NULL 与没有数据是不一样的,它代表 ...
- 从数据感知到决策优化:MyEMS 开源能源管理系统的技术架构与实践效能解析
在全球 "双碳" 目标与能源安全战略的双重驱动下,企业对能源管理的需求已从 "单纯降本" 升级为 "安全可控.高效利用.低碳协同" 的综合诉 ...
- 一款基于 WPF 开源、轻量级的 Markdown 编辑器
前言 Markdown 作为一种轻量级标记语言,因其简洁易读的语法和强大的文档处理能力,受到了广大开发者和内容创作者的青睐.今天大姚给大家分享一款基于 WPF 开源.轻量级的 Markdown 编辑器 ...
- 从 LLM 到自主 Agent:OpenCSG 打造开源 AgenticOps 生态
在产业拐点上,交付可持续.可落地的智能体未来 在生成式 AI 的时代洪流中,大语言模型(LLM)已成为行业标配,但如何突破"会说不会做"的局限,让 AI 真正具备自主感知.决策与执 ...