- 博客(398)
- 资源 (2)
- 收藏
- 关注
原创 java实例变量和类变量
被static关键字修饰,属于类本身,不属于任何对象;全类所有对象共享同一份数据。java运行// 类变量:static 修饰public static String school = "第一中学";
2026-07-22 16:02:40
184
原创 类变量和实例变量在继承中的表现有什么不同?
类变量:沿继承链共享,可层层覆盖,一处修改全员生效(没重写的前提下)实例变量:只属于对象,没有继承一说,想要复用必须调用父类构造方法。
2026-07-22 15:58:53
173
原创 类变量和实例变量在继承中的表现有什么不同?
类变量是沿着继承链共享的类级属性,子类不重写就共用父类数据,重写后完全隔离;实例变量只属于单个对象,不存在继承关系,只有主动调用父类构造函数,实例上才会附带父类定义的实例变量。
2026-07-19 11:14:47
237
原创 类变量和实例变量的命名规范
遵循 PEP8 官方规范,同时区分业务常用约定、私有 / 公有、常量场景。普通小写蛇形,无任何前缀:python运行2. 私有实例变量(约定外部不要直接访问)单下划线 开头:仅约定,语法上仍可外部读取,提示使用者不要直接操作。python运行3. 名称改写私有(双下划线 )双下划线开头,Python 会自动名称改写,外部无法直接通过 访问,用于内部敏感数据。python运行三、类变量命名规范1. 普通可变类变量(会动态修改)小写蛇形,和实例变量格式一致:python运行
2026-07-19 03:06:04
207
原创 如何在类的方法中访问类变量和实例变量?
类方法、静态方法拿不到实例变量 它们不绑定任何实例,没有 self,无法读取。直接报错,cls 是类,看不到单个实例的 self 属性。会在实例上新建同名实例变量,遮蔽类变量。→ 父类,所以如果实例有同名变量,会优先读实例变量。,既能访问实例变量,也能访问类变量。访问类变量,完全无法访问实例变量。没有隐式参数,只能通过。
2026-07-19 03:04:43
167
原创 类变量和实例变量的作用域分别是什么?
类内部任意位置self.类变量名类名.类变量名cls.类变量名类名.类变量名外部代码两种访问方式python运行class A:count = 0# 方式1(推荐)# 方式2(仅读取,赋值会踩坑)a = A()子类可继承访问python运行passprint(B.count) # 子类能读取父类类变量实例变量作用域只局限于单个实例,只有拿到该实例对象才能访问,实例之间完全隔离;类变量作用域覆盖整个类、所有实例、子类、全局代码,只要类存在,任何地方都能通过类名读取修改。
2026-07-15 01:24:09
188
原创 类变量和实例变量的生命周期有什么不同?
只属于当前这一个实例,仅在该实例存活期间可用。不同实例的实例变量互相独立,删除一个实例,只会销毁它自己的实例变量,不影响其他实例。类定义代码时,Python 自动创建类对象,同时生成所有类变量,存入类的。时,才会给当前实例分配内存、生成实例变量,存入实例自己的。日常业务代码中几乎不会主动销毁类,类变量基本全程常驻内存。实例一回收,它内部所有实例变量同步释放内存。没有实例,就不存在实例变量。
2026-07-14 13:29:46
241
原创 类变量和实例变量在内存中存储的方式对代码可维护性有哪些影响?
核心根源: 类变量,所有实例共用同一块内存;实例变量,对象之间内存完全隔离。存储位置直接决定数据作用域、修改副作用、BUG 隐蔽程度、代码结构、调试难度、扩展成本。
2026-07-06 23:26:21
363
原创 除了这两种方法,还有其他方法判断变量是可变变量还是不可变变量吗?
日常手写代码:记类型表最快代码自动判断:优先用捕获异常学习原理:用id()、魔法方法、集合字典哈希规则理解底层需要我把hash方式封装成健壮的通用判断函数吗?
2026-07-02 01:42:29
243
原创 如何判断一个变量是可变变量还是不可变变量?
写代码日常:直接对照类型表判断;学习原理:用id()查看内存地址变化;代码自动判断:使用可变抽象基类;简单测试:尝试索引赋值,报错即为不可变。需要我给你封装一个一键判断可变 / 不可变的小工具函数吗?。
2026-07-01 00:41:02
164
原创 如何在Python中修改不可变变量的值?
不可变类型无法原地修改,只能通过重新赋值让变量指向新对象;字符串、元组的拼接、替换、切片操作,都会返回全新对象;想要实现原地修改效果,可以用列表等可变容器包裹不可变数据;globalnonlocal只是修改变量绑定关系,不是修改原始不可变对象。需要分别整理字符串、元组常用生成新对象的方法清单吗?
2026-07-01 00:39:28
200
原创 如何判断一个变量是否是不可变变量?
日常开发:直接背类型表判断(最快)学习原理:用id()观察内存地址严谨代码判断:用抽象基类需要我给你写一个通用小函数,输入任意变量自动返回「可变 / 不可变」吗?saasw.com。
2026-07-01 00:35:52
228
原创 类变量和实例变量在内存中存储的方式对代码性能有什么影响?
表格存储类型内存特征对可维护性的正向影响对可维护性的负面隐患类变量(类内单份共享内存)全局唯一,所有实例引用同一块内存1. 配置集中统一,一处修改全局生效2. 方便全局统计、状态观测3. 代码结构清晰,公共配置集中管理1. 可变对象易发生隐性跨实例数据污染,BUG 难复现2. 实例赋值会静默生成实例变量,造成数据分裂3. 全局常驻内存,容易引发内存泄漏4. 并发修改需要手动加锁,提升代码复杂度实例变量(每个实例独立内存)每个对象私有存储,数据隔离。
2026-06-29 22:16:57
337
原创 类变量和实例变量在内存中存储的方式对代码可维护性有什么影响?类变量
表格存储类型内存特征对可维护性的正向影响对可维护性的负面隐患类变量(类内单份共享内存)全局唯一,所有实例引用同一块内存1. 配置集中统一,一处修改全局生效2. 方便全局统计、状态观测3. 代码结构清晰,公共配置集中管理1. 可变对象易发生隐性跨实例数据污染,BUG 难复现2. 实例赋值会静默生成实例变量,造成数据分裂3. 全局常驻内存,容易引发内存泄漏4. 并发修改需要手动加锁,提升代码复杂度实例变量(每个实例独立内存)每个对象私有存储,数据隔离。
2026-06-28 22:16:28
184
原创 类变量和实例变量在内存中是如何存储的?
表格维度类变量实例变量存储位置类对象的__dict__每个实例各自的__dict__(或__slots__数组)内存份数全局仅 1 份N 个实例就 N 份独立存储创建时机类定义阶段实例化运行时(一般__init__属性查找顺序实例→类直接当前实例生命周期类加载到程序结束实例创建到被 GC 回收需要我画一张完整的内存寻址流程图(属性查找 MRO 链路)吗?
2026-06-28 22:14:37
208
原创 如何在实际开发中选择使用类变量和实例变量?
用类变量当默认值,需要自定义时在实例覆盖:python运行# 大部分商品用默认状态,不用赋值passg2.default_status = 2 # 仅当前商品修改会导致所有实例数据互相覆盖。需要我整理一份面试高频场景选型速记表吗?
2026-06-28 22:09:04
561
原创 类变量和实例变量的内存分配方式对性能的影响具体有哪些?
类定义阶段在堆中只分配,存放在类对象的__dict__里,所有实例仅保存对这块内存的引用地址,不会复制数据。
2026-06-25 23:53:40
371
原创 类变量和实例变量的内存分配方式对性能的影响具体有哪些?
表格性能维度类变量实例变量内存占用极低,全局复用一份内存高,每个实例独立分配实例化速度快,无需重复赋值稍慢,每次要写入实例字典属性读取速度类名访问最快;实例访问略慢单次字典查询,速度稳定GC 开销小,生命周期长,极少回收大,频繁创建销毁会频繁 GC并发性能 (可变对象)不加锁会错乱,加锁后性能差天然隔离,无锁,并发性能好需要我附上一段可直接运行的压测代码,分别测试内存、实例化耗时、循环读取耗时吗?njhjzs.com。
2026-06-24 02:20:34
192
原创 类变量和实例变量的内存分配方式对性能有什么影响?
读多、实例多、数据全局相同:优先类变量,省内存、快创建、低 GC,性能拉满;数据隔离、频繁修改、高并发场景:优先实例变量,牺牲内存换无锁安全,避免并发性能雪崩;不要通过实例给类变量直接赋值,否则会意外创建大量实例变量,白白浪费内存性能优势。需要我做一组极简的性能压测代码,直观对比两种变量的实例化耗时、内存占用、循环读取耗时吗?xiusho.com。
2026-06-24 02:19:38
354
原创 11.定时器和时间管理
目录内核中的时间概念节拍率:HZ(每秒执行中断次数)Jiffies时钟中断处理程序定时器延迟执行内核中的时间概念节拍率:HZ(每秒执行中断次数)Jiffies但是如果时间间隔超过jiffies的最大取值,依然会出现无法判断的错误。时钟中断处理程序定时器延迟执行...
2021-07-15 12:41:53
405
原创 10.内核的同步方法
目录原子操作自旋锁读写自旋锁信号量互斥体完成变量顺序锁禁止抢占顺序和屏障原子操作自旋锁自旋锁和下半部读写自旋锁信号量互斥体对于信号量和互斥体,功能很类似,优先使用互斥体。完成变量顺序锁禁止抢占顺序和屏障...
2021-07-13 22:09:19
423
原创 8.下半部和推后执行的工作
下半部软中断和taskletsTasklets就是通过软中断实现的,所以这两部分可以放在一起说明:如下图所示是系统自带的tasklet(软中断实现):如果要添加一个软中断,就是在以上表格中增加一项。软中断执行时机:软中断和tasklet的区别:由于软中断必须使用可重入函数,这就导致设计上的复杂度变高,作为设备驱动程序的开发者来说,增加了负担。而如果某种应用并不需要在多个CPU上并行执行,那么软中断其...
2021-07-10 21:19:28
522
1
原创 4、进程调度
一、多任务以及策略二、Linux调度算法三、Linux调度的实现时间记账:2、进程选择:3、调度器入口4、睡眠和唤醒四、抢占和上下文切换用户抢占:内核抢占:五、实时调度策略 其中,SCHED_FIFO和SCHED_RR调度策略是给实时进程使用的,而SCHED_NORMAL调度策略是给普通进程使用的,通过n..
2021-07-06 13:31:30
231
原创 3、进程管理
1、进程描述符及其结构内核在创建进程的时候,在创建两个栈,一个用户栈,存在于用户空间,一个内核栈,存 在于内核空间。当进程在用户空间运行时,cpu堆栈指针寄存器里面的内容是用户堆栈地址,使用用户栈;当进程在内核空间时,cpu堆栈指针寄存器里面的内 容是内核栈空间地址,使用内核栈。什么是进程的内核栈:在每一个进程的生命周期中,必然会通过到系统调用陷入内核。在执行系统调用陷入内核之后,这些内核代码所使用的栈并不是原先用户空间中的栈,而是一个内核空间的栈,这个称作进程的“内核栈”。 内核栈是内核固有的
2021-07-03 10:35:21
263
原创 opendaylight(Li)下toaster APP的简单实现
OS:ubuntu 14.04 64bit一、安装jdk准备资材:jdk-8u72-linux-x64.tar.gz(之前使用了jdk7,compile时报“java/util/function/consumer”找不到)1.解压jdk进入/usr/local目录后,解压文件#cd /usr/local#tar xzvf /home/todd/jdk-8
2016-04-04 20:14:41
3534
原创 shell相关注意点
一、read命令读取文件时会自动去掉行前后的空格。a.txt:(每行前后都有空格) 11111 222222 3333333 a.sh:#!/bin/bashwhile read oneline;do echo "$oneline"done 执行结果:11111122222
2016-03-10 18:12:58
1562
原创 opendaylight(Li) l2switch 源代码分析(3)--packethandler
本文介绍packethander工程,该工程用于对进入到controller的packet进行解析并分发到不同的模块进行处理。工程分为四个部分:config文件夹:packethander的配置信息,如plugin的部署顺序,初始化时的配置。implementation文件夹:service的具体实现,包含了java和yang。model文件夹:定义了packet相关的yang
2016-03-07 23:11:56
2236
原创 opendaylight(Li) l2switch 源代码分析(2)--parent
本文主要介绍l2switch中的parent工程,该工程定义了运行L2switch所使用的依赖模块以及版本等。该工程下只有一个pom.xml文件,下面对该文件中的主要内容进行说明:1. org.opendaylight.odlparent odlparent 1.7.0-SNAPSHOT 该工程继承了工程“org.opendaylig
2016-02-26 22:40:44
2790
原创 opendaylight(Li) l2switch 源代码分析(1)--代码的整体结构和整体pom.xml
opendaylight l2switch提供了L2 switch的功能,下面通过对源代码进行解说来介绍该项目的功能。一、源代码整体结构1.l2switch的源代码github地址为:https://github.com/opendaylight/l2switch.git2.L2switch构架parent 定义了运行L2switch所使用的依赖模块以及版本等。
2016-02-25 22:02:10
3553
原创 redhat7.1 64bit上rpm安装mysql 5.6
因为redhat7.1自带了mariadb的lib,所以需要先卸载:# yum remove mariadb-libs-5.5.41-2.el7_0.x86_64安装mysql的相关rpm:# rpm -ivh MySQL-server-5.6.23-1.el7.x86_64.rpm# rpm -ivh MySQL-devel-5.6.23-1.el7.x86_64.rpm
2016-01-14 13:22:39
2693
原创 apache整合tomcat实现负载均衡
这种整合方式能够使apache成为反向代理,将请求均匀地转发到多台tomcat之一,从而达到负载均衡的目的。负载均衡的方式我知道有三种:1.mod_proxy方式。2.mod_proxy_blancer方式3.ajp方式。本文只介绍mod_proxy_blancer方式。系统版本:Ubuntu 14.04.1 LTS内核版本:3.13.0-32-gene
2016-01-11 23:26:55
829
原创 apache整合tomcat实现动静分离
关于为什么要将apache和tomcat整合起来,网上的说明也很多,下面我引用一下觉得整理的比较好的,以内容转载于:http://blog.csdn.net/stefyue/article/details/6918542----------------------------转载开始------------------------------------------Apache和T
2016-01-03 15:20:07
5395
哈弗曼编码实现文件压缩
2014-09-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅