首页
学习
活动
专区
工具
TVP
发布

醒者呆

专栏作者
62
文章
83303
阅读量
35
订阅数
1、引言
栈帧对应一个线程的一个方法的内容,用于方法的执行,包括方法执行过程中的变量的临时状态。同时栈帧也执行动态链接,方法的返回值以及分发异常。栈帧被包含在JVM栈中。每一个栈帧包括:
文彬
2022-06-06
3500
笔记系列:Java内存模型JMM
可以看到CPU是最快的,但是最窄,也就是说它虽然快,但存储量不大。CPU又可以分为三层,从上至下分别为:
文彬
2022-06-06
3500
笔记系列:JVM类链接和初始化
2、Preparation,给静态成员变量赋默认值。例如int默认值0,long默认值0,float默认值0.0。
文彬
2022-06-05
2470
最强肉坦:RUST多线程
这是几乎每种编程语言都会遇到的实现场景,通过对比Java和Rust的实现与运行表现,我们可以清晰地看出Rust的不同或者说Rust的良苦用心,以及为了实现这一切所带来的语言特性。我们首先来看Java的实现方法。
文彬
2022-06-02
1.6K0
Java有根儿:Class文件以及类加载器
class文件是JVM的输入,内容是已编译的代码,它是一种跨硬件和跨操作系统的二进制格式。class文件可以准确定义类和接口,以及他们内部的针对不同平台分配的内存字节表示。下面我们看一下一个class文件的16进制内容。
文彬
2022-05-30
4160
BFT-SMaRt:用Netty做客户端的可靠信道
Netty是目前最高效便捷的NIO框架。Netty可提供更加高可用、更好健壮性的稳定大规模连接的IO通道。任何一款区块链早期的技术产品,都是从联盟链开始演进,因为联盟链降低了很多原教旨的难度。回到BFT-SMaRt,它的网络连接分为节点之间的连接,节点与客户端之间的连接。节点之间的连接,我们在BFT-SMaRt:用Java做节点间的可靠信道一文中详细分析了在共识逻辑之前节点之间能够做到的连接准备。那么,本文将继续探索在BFT-SMaRt项目中,节点与客户端之间的连接是如何实现的。
文彬
2020-02-14
9151
克隆一个对象——原型模式深入解析
原型模式也是创建型的设计模式,字面意思其实很简单,就是复制一个对象,这里面有什么学问呢? 用原型实例指定创建对象的种类,并且通过拷贝这些原型,创建新的对象。 按照惯例,先讲故事。 我们都知道苹果有刻字服务,也就是假如你买了一款iPhone手机,你可以花一点钱让厂商给你刻上你想刻的字,这样体现了这款产品的独一无二性,很有意思。 那么现在,有甲乙丙都来买iPhone手机,并且都想刻上自己的名字,我们假设新手机是完全一模一样的。 常规的解决办法: public class Apple { pr
文彬
2018-05-08
7030
大师的小玩具——泛型精解
掌握Java的泛型,这一篇文章足够了。 关键字:泛型,Iterable接口,斐波那契数列,匿名内部类,枚举,反射,可变参数列表,Set 一般类和方法,要么只能使用基础类型,要么是自定义的类。如果要编写可以应用于多种类型的代码,这种刻板的限制会对代码的束缚很大。 Java中,当你将一个基类作为一个方法的参数传入的时候,所有该基类的子类均可以作为参数,然而private构造器或者final修饰的类是不可被继承的,再加上Java的单继承特性,这种看上去的灵活性也有他的限制以及性能损耗。 如果参数
文彬
2018-05-08
1.4K0
掌握NIO,程序人生
就像新IO为java带来的革新那样,让我们也开启一段新的程序人生。 关键字:NIO,BIO,伪IO,AIO,多路复用选择器,通道,缓冲区,jdk研究,回调函数,高并发 java.nio 概述 历史背景 在java nio出现之前,java网络IO是只有输入输出流操作的基于同步阻塞的Socket编程,这在实际应用中效率低下,因此当时高性能服务器开发领域一直被拥有更接近UNIX操作系统的Channel概念的C++和C长期占据。我们知道现代操作系统的根源都是来自于UNIX系统,它代表了操作系统层面底层
文彬
2018-05-08
1.2K1
正则表达式——Java程序员懂你
正则表达式 关键字:正则表达式,Pattern,Matcher,字符串方法,split,replace 前文书立下了一个flag,这里要把它完成,就是正则表达式,它是一个工具,是很早就存在于标准Unix工具集之中的,例如sed和awk。然而不经常使用Unix系统的程序员们依然能够在JavaScript,java,python,perl等等地方看到它,每当我们看到手指纷飞的他人写着精妙的一小撮正则就干了我们好几篇的校验代码的时候,心里默默升起一股羡慕之情,同时只能赶紧把这一小撮正则保存下来,下次好修修补
文彬
2018-05-08
9120
编程语言的基础——搞定JavaIO
关键字:IO基础,JUnit生命周期,字节流,字符流,字符编码,对象流,序列化,反序列化 Java I/O 流是一组有顺序的,有起点和终点的字节集合。是对设备文件间数据传输的总称和抽象。 在IO中涉及的设备文件包括文件、控制台、网络链接等,这其中又根据流的方向可以将两端的设备文件分为数据源对象和接收端对象 数据源对象:有能力产出数据 接收端对象:有能力接收数据 而IO流实际上屏蔽了在实际设备中的处理数据的细节,这些处理方式也叫通信方式可以包括顺序、随机存取、缓冲、二进制、按字符、按字节、按行等。 字节
文彬
2018-05-08
1.4K0
Efficient&Elegant:Java程序员入门Cpp
最近项目急需C++ 的知识结构,虽说我有过快速学习很多新语言的经验,但对于C++ 老特工我还需保持敬畏(内容太多),本文会从一个Java程序员的角度,制定高效学习路线快速入门C++ 。 Java是为了就业,C++ 是信仰。(C++ 是教学、信仰、商业这三个原本互斥的概念(这三个概念也是三个阶段,正好可以陪我们一起成长)的偏偏集合体) 关键字:C++ ,基本语法,C++ 与Java对比,环境搭建,helloworld,C++ 工具,C++ 类库,抽象机制,并发 热身 基本思想 这一章是高屋建
文彬
2018-05-03
1.8K0
融会贯通——最常用的面向对象设计原则“合成复用原则”
复用一个类的时候,多使用对象的组合/聚合的关联关系,而不是继承。 之前提到的“依赖倒转原则”,是以里氏代换原则为基础的实现开闭原则目标的手段,这一条路线涉及到的是类的继承(包括单继承和接口实现),他们支撑了Java多态的特性。 但是今天要谈一谈Java另一个特性——封装。封装就是不要暴露过多的基类内部细节给子类,让高层的操作神秘起来,不让小兵知道。合成复用原则体现的就是封装的特性。 所以可以推论出,多使用对象的组合/聚合关系,而不是继承,从而实现不会暴露过多的基类操作细节给子类的目的。 那么组合和聚合是什么
文彬
2018-05-03
5580
融会贯通——深入了解面向对象设计原则“依赖倒转原则”
一千个人眼里有一千个哈姆雷特,下面我尝试用深入浅出的语言贯穿到“控制反转”,“依赖注入”,“面向抽象编程”,以及“面向接口编程”这几个概念。 传递参数,关联(组合&聚合)关系时,要尽量引用高层次的抽象类,使用基类和接口进行变量类型的声明,参数类型的声明,数据类型转换(也是向高层次的抽象类转),而不要用具体的子类。 以上总结为“控制反转”,也叫“面向抽象编程”。 真到了要使用具体子类的时候,采用“依赖注入”的方式: 构造注入,通过构造函数传入具体类的对象 setter注入,通过setter方法传入具体类的对象
文彬
2018-05-03
5740
精雕细琢——全方位解析工厂模式
工厂模式是面向对象设计模式中非常重要,非常流行的模式,是应该首先被理解透彻的模式。 我们讲对象的相关职责包括: 对象本身的职责(数据和行为) 创建对象的职责 使用对象的职责 而对象的创建在Java中有四种方式: new 反射 clone() 工厂类创建 工厂模式是创建型设计模式 程序员的敏感地带: 大量的重复性代码,大量的if...else...语句 一个类过于复杂,违反了“单一职责原则” 如果有扩展会引发修改,违反了“开闭原则” 使用对象时不要用new来创建对象,耦合度高 我们先描述一个场景,某产品
文彬
2018-05-03
4850
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档