高性能网络通信框架Netty-基础概念篇

一、前言

Netty是一种可以轻松快速的开发协议服务器和客户端网络应用程序的NIO框架,它大大简化了TCP或者UDP服务器的网络编程,但是你仍然可以访问和使用底层的API,Netty只是对其进行了高层的抽象。

Netty的简易和快速开发并不意味着由它开发的程序将失去可维护性或者存在性能问题。Netty是被精心设计的,它的设计参考了许多协议的实现,比如FTP,SMTP,HTTP和各种二进制和基于文本的传统协议,因此 Netty成功的实现了兼顾快速开发,性能,稳定性,灵活性为一体,不需要为了考虑一方面原因而妥协其他方面。

image

Read more

第七章.虚拟机类加载机制

类加载的生命周期

类加载的整个生命周期:加载–验证–准备–解析–初始化–使用–卸载 7个阶段,其中验证、准备、解析部分统称为连接。

类初始化的5中条件

1. 使用new关键字实例化对象的时候,读取或设置一个类的静态字段(该字段不被final修饰)的时候,以及调用一个类的静态方法的时候
2. 使用java.lang.reflect包的方法对类进行反射调用的时候
3. 当初始化一个类的时候,如果发现其父类还没有进行过初始化,则需要先初始化其父类
4. 当虚拟机启动的时候,用户需要指定一个要执行的主类,虚拟机需要先初始化这个主类
5. 当使用JSK1.7的动态语言支持时,如果一个java.lang.invoke.MethodHandle实例最后的解析结果REFgetStatic、REFputStatic、REF_invokeStatic的方法句柄,并且这个方法句柄说对应的类没有进行过初始化

Read more

《技术人求职指南》(六)如何选择Offer

大家阅读这篇文章的时候,也许大家已经拿到了很多offer,在这里首先要恭喜大家但是很多应聘者拿到了offer之后还是有很多疑问,比如“我拿到了两家公司的offer,哪一家公司好,我该去哪一家公司”,“某家公司给了我口头offer,我把另一家公司的offer拒了”,“如果A公司比B公司大,但是B公司给的薪水多,我如何选择呢”,“某某公司的offer我是否应该拒绝”。

Read more

《技术人求职指南》(五)如何高效面试

作者:方腾飞  原文首发于极客时间

我推荐过很多应聘者,面试完之后我会得到很多反馈,比如”面试官问的问题比较多,有些问题回答上来了有些没有,不知道自己是否能通过”,“技术面试的时候,有些技术点问的很细致,自己没有回答上来”,“HR很在乎我频繁跳槽,所以终面没有通过”。这些反馈都是面试中遇到的问题,所以今天和大家一起聊聊技术人员如何正确进行面试,从而提高面试通过率。

整个面试会分为简历评估技术面试和HR面试三部分前面文章已说明,个人简历很重要,优秀的简历就能通过简历评估面试,这里就不再赘述。下面则主要讲述技术面试和HR面试。

Read more

《技术人求职指南》(二)如何写好简历

作者:方腾飞  原文首发于极客时间

前段时间有朋友问他投了简历为什么公司迟迟没有给他面试机会,还有朋友说他因为频繁跳槽在复试的时候被拒绝,但是他说每次跳槽都有进步不过我从他简历中只能看到频繁跳槽,没有看到进步。这些问题都和所写的简历息息相关。

在工作中,我筛选过近千封简历,面试过300名左右的求职者,也推荐过上百封简历。这个过程中,我发现一些求职者的简历确实有写得不尽如人意的地方,有的简历写得太简单缺少必要信息,有的简历写得太多没有突出重点。

今天我将个方面和大家谈谈如何写好简历首先什么是简历其次为什么要写好简历再次简历的内容最后,五点建议。

Read more

《技术人求职指南》(一)你是否应该选择跳槽

作者:方腾飞   原文首发于极客时间

每天都会有很多的人在跳槽,刚毕业几年技术人员跳槽很容易,薪水也容易让自己满意,因为公司愿意为你的潜力买单并培养你。但是随着年龄的增长,跳槽变得不那么容易,薪资也很难增长你对薪资的期望会越来越高,而公司对的要求也越来越高,如果你和应届生做的事情差不多,或者你能做的事情应届生都能做,公司花三万可以招聘三个应届生,为什么要花三万招聘你呢?在这种残酷的竞争之下,技术人员要逐渐打造自己的技术壁垒,争取为公司创造更大价值。若你能为公司创造千万收益,能拿百万收入。

跳槽有利也有弊,需要非常谨慎的对待。其利是可能更符合你未来的规划和提升,弊则是会影响职业规划,新公司也会浪费你一些时间,可能会做之前做过的事情,熟悉新公司的环境新业务和新同事建立信任感等。在原公司你最重要财富是你的根基,这个根基包括同事对你的信任、你的团队、和你在整个公司的地位,这个跟进在新公司是需要花很长一段时间才能建立起来的。

Read more

《JDK10新特性官方文档》在可选内存设备上的分配堆内存

原文链接

JEP 316: 在可选内存设备上的分配堆内存

Owner

Kishor Kharbas

Created

2016/12/13 19:31

Updated

2018/03/20 20:32

Type

Feature

Status

Closed / Delivered

Component

hotspot / gc

Scope

JDK

Discussion

hotspot dash dev at openjdk dot java dot net

Effort

M

Duration

M

Priority

3

Reviewed by

Mikael Vidstedt

Endorsed by

Mikael Vidstedt, Vladimir Kozlov

Release

10

Issue

8171181

 

 
Read more

Netty(一) SpringBoot 整合长连接心跳机制

前言

Netty 是一个高性能的 NIO 网络框架,本文基于 SpringBoot 以常见的心跳机制来认识 Netty。

最终能达到的效果:

  • 客户端每隔 N 秒检测是否需要发送心跳。
  • 服务端也每隔 N 秒检测是否需要发送心跳。
  • 服务端可以主动 push 消息到客户端。
  • 基于 SpringBoot 监控,可以查看实时连接以及各种应用信息。

Read more

1K star+ 的项目是如何炼成的?

前言

首先标题党一下,其实这篇文章主要是记录我的第二个过 1K star 的项目 Java-Interview,顺便分享下其中的过程及经验。

Read more

《JDK10新特性官方文档》额外的 Unicode 语言标签扩展

原文地址

JEP 314: 额外的 Unicode 语言标签扩展

Owner

Naoto Sato

Created

2017/03/24 23:19

Updated

2018/03/06 17:15

Type

Feature

Status

Closed / Delivered

Component

core-libs / java.util:i18n

Scope

SE

Discussion

i18n dash dev at openjdk dot java dot net

Priority

2

Reviewed by

Alan Bateman, Brian Goetz

Endorsed by

Brian Goetz

Release

10

Issue

8177568

Summary

增强 java.util.Locale 和相关 API,实现 BCP 47 语言标签中额外的 Unicode 扩展。

Read more

《JDK10新特性官方文档》JEP304: 垃圾收集器接口

作者: Roman Kennke

创建时间:2016/08/06 08:45

更新时间:2018/04/09 12:37

类型: 特性

状态: 已关闭/已提交

组件:hotspot/gc

范围:实现类

讨论: openjdk.java.net上的hotspot-gc-dev

Read more

《JDK10新特性官方文档》JEP307: G1 Full GC的并行化

 

作者: Stefan Johansson

创建时间:2017/01/17 11:40

更新时间:2018/03/29 07:39

类型: 特性

状态: 已关闭/已提交

组件:hotspot/gc

范围:实现类

讨论: openjdk.java.net上的hotspot-gc-dev

影响:M

持续时间:M

优先级:3

审阅人:Mikael Vidstedt

支持者:Mikael Vidstedt

版本:10

问题讨论8172890

Read more

Hystrix熔断机制原理剖析

一、前言

在分布式系统架构中多个系统之间通常是通过远程RPC调用进行通信,也就是 A 系统调用 B 系统服务,B 系统调用 C 系统的服务。当尾部应用 C 发生故障而系统 B 没有服务降级时候可能会导致 B,甚至系统 A 瘫痪,这种现象被称为雪崩现象。所以在系统设计时候要使用一定的降级策略,来保证当服务提供方服务不可用时候,服务调用方可以切换到降级后的策略进行执行。 Read more

Dubbo剖析-并发控制

一、前言

前面讲解了Dubbo的服务降级,本节我们来讲解dubbo中的并发控制,并发控制分为客户端并发控制和服务端并发控制。 Read more

《JDK10新特性官方文档》从JDK10中移除javah工具

原文链接

  • JEP 313: 移除Native-Header生成工具 (javah)
  • Owner    Jonathan Gibbons
  • Created    2017/06/23 17:28
  • Updated    2018/01/10 22:02
  • Type    Feature
  • Status    Closed / Delivered
  • Component    tools / javah
  • Scope    JDK
  • Discussion    compiler dash dev at openjdk dot java dot net
  • Effort    XS
  • Priority    3
  • Reviewed by    Brian Goetz, Joe Darcy
  • Endorsed by    Brian Goetz
  • Release    10
  • Issue    8182758

概要

 

从JDK中移除javah工具。

Read more

return top