
java
文章平均质量分 54
偶阵雨丿
这个作者很懒,什么都没留下…
展开
-
select、poll、epoll 对比
既然 select/poll/epoll 都是 I/O 多路复用的具体的实现,之所以现在同时存在,其实他们也是不同历史时期的产物select 出现是 1984 年在 BSD 里面实现的 14 年之后也就是 1997 年才实现了 poll,其实拖那么久也不是效率问题, 而是那个时代的硬件实在太弱,一台服务器处理1千多个链接简直就是神一样的存在了,select 很长段时间已经满足需求 2002, 大神 Davide Libenzi 实现了 epoll一、API 对比1.1 select..转载 2020-06-02 00:28:33 · 401 阅读 · 1 评论 -
linux 内核空间与用户空间
为了对内存中的存储单元进行识别,内存中的每一个存储单元都必须有一个确切的地址。而一台计算机的处理器能访问多大的内存空间就取决于处理器的程序计数器,该计数器的字长越长,能访问的空间就越大。例如:对于程序计数器位数为32位的处理器来说,他的地址发生器所能发出的地址数目为2^32=4G个,于是这个处理器所能访问的最大内存空间就是4G。在计算机技术中,这个值就叫做处理器的寻址空间或寻址能力。对 32 位操作系统而言,它的寻址空间(虚拟地址空间,或叫线性地址空间)为 4G(2的32次方)。也就是说一个进程.原创 2020-06-01 23:47:43 · 290 阅读 · 0 评论 -
对Java assert的理解
断言(Assertion)是一种调试程序的方式。在Java中,使用assert关键字来实现断言。断言是一种调试方式,断言失败会抛出AssertionError,只能在开发和测试阶段启用断言;对可恢复的错误不能使用断言,而应该抛出异常;断言很少被使用,更好的方法是编写单元测试。我们先看一个例子:public static void main(String[] args) { double x = Math.abs(-123.45); assert x >= 0.转载 2020-05-30 21:48:46 · 459 阅读 · 0 评论 -
模板模式
在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。意图:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。模板方法写在接口中,没有具体实现,只是定义接口方法执行步骤public abstract class Game { abstract void initi.原创 2020-05-28 01:22:53 · 173 阅读 · 0 评论 -
观察者模式
观察者模式当一个对象状态发生变化时,能够自动通知其他关联对象,自动刷新对象状态提供关联对象一种同步通信的手段,使某个对象与依赖它的其他对象之间保持状态同步被观察者【主题】(subject)具体被观察者(concrete subject)观察者(observer)具体被观察者(concrete observer)观察者模式,是一种一对多的关系,即多个观察者监听一个主题。/** * 主题的接口 定义标准的方法 */public interface Subjec.原创 2020-05-27 23:34:52 · 150 阅读 · 0 评论 -
netty 学习笔记(一)
事件循环组【实际是一个死循环】bossGroup:负责处理连接workerGroup:负责具体工作ServerBootstrap:服务引导启动器,NIO的辅助工具handler方法是为bossGroup提供的处理方式childHandler方法是为workGroup提供的处理方式ChannelFuture异步操作执行完,没有等待执行完成再返回,直接返回的Future。public class TestServer { public static void .原创 2020-05-27 16:37:58 · 240 阅读 · 0 评论 -
Java 中NIO与IO对比
节点流:从特定的地方读写的流类,例如:磁盘或者一块内存区域过滤流:使用节点流作为输入或输出,过滤流是使用一个已经存在输入流或输出流进行创建的装饰模式(Decorator) 抽象构件角色(component):【inputStream】给出一个抽象接口,以规范准备接受附加责任的对象 具体构件角色(concrete component):【fileInputStream】定义一个将要接收附加责任的类 装饰角色(decorator):【fi...原创 2020-05-22 23:38:20 · 375 阅读 · 0 评论 -
java 成员变量与属性的区别
类的成员变量:定义在方法外可以被类方法访问的是成员变量。按照java的编码规范,成员变量一般被定义成private权限。类的属性:类的成员变量中,外界可以通过set方法和get方法对成员变量进行操作,那么这个成员变量就是类的属性。...原创 2020-04-05 13:29:37 · 389 阅读 · 0 评论 -
线程生命周期
知乎的图原文地址线程的状态使用一个枚举类型来描述的。这个枚举一共有6个值:NEW(新建)、RUNNABLE(运行)、BLOCKED(锁池)、TIMED_WAITING(定时等待)、WAITING(等待)、TERMINATED(终止、结束)。BLOCKED(锁池) 也就是我们平时说的阻塞,阻塞状态(Blocked):阻塞状态是线程因为某种原因放弃CPU使用权,暂时停止运行。直...转载 2020-03-28 22:55:40 · 145 阅读 · 0 评论 -
java只有值传递?
以下这段参考了一下bilibili网友【电饭锅水蜜桃】的视频评论我的理解是很多人认为这里的值传递中,“值”包括:实际值,引用地址值。这句话打个比方就是说: 我介绍了粳米,籼米,两种大米,然后说我中午只吃米饭,不吃籼米。这时候“米饭”的范围变大了!!!这样很容易让人混淆,值传递与引用传递的效果是不一样的,把引用地址归为"值",然后这说个“值”是地址,能改变对象的真实值。自己给自己下套,《ja...转载 2020-03-27 16:29:12 · 128 阅读 · 0 评论 -
MybatisPlus中,同一个方法里切换数据源
@DataSource("userDataSource")方法最上面有这个注解,那么我在方法中默认使用配置好的userDataSource这个数据源在方法中需要用其他数据源怎么办? DynamicDataSourceHolder.setDataSource("contentDataSource");要用其他数据源则用上面的方法切换,之后就默认用切换之后的数据源了...原创 2019-07-10 16:50:03 · 3170 阅读 · 2 评论 -
String.format()的详细用法
问题在开发的时候一段字符串的中间某一部分是需要可变的 比如一个Textview需要显示”XXX用户来自 上海 年龄 21 性别 男”其中的 XXX 是用户名 每个用户也是不一样的地区 上海 为可变的string数据年龄 21 为可变的int数据性别 男 为可变的string数据遇到这种情况你们是怎么样解决的呢?把这段字符串保存在常量类里吗?不!我们应该遵循Google的开发...转载 2019-06-03 11:40:05 · 520 阅读 · 0 评论 -
Plugin 'XXX' is incompatible with this installation
翻译成中文:插件“XXX”与此安装不兼容说明插件与jetbrains的软件版本不兼容首先应该查看软件版本,已idea为例:https://img-blog.youkuaiyun.com/20180518163729613 https://img-blog.youkuaiyun.com/2018051816373076http://plugins.jetbrains.com/idea...原创 2018-05-18 16:38:27 · 55996 阅读 · 8 评论 -
发送邮件本地测试正常,部署到linux就出现发送超时问题处理
第一种情况是阿里云限制了25端口阿里云服务器限制了25端口。问了126邮箱那边的技术客服,只支持25端口。问了阿里云的售后,他们说25端口不开放。可以考虑463端口或者他们的邮箱服务。第二种情况是linux无法解析域名是由于linux无法解析域名地址导致,需要在代码中将邮件服务器地址改成IP的,如:stmp.mail.163.com改成:220.181.72.147,如果不想改的话, 需要在lin...转载 2018-04-08 15:58:21 · 3208 阅读 · 0 评论 -
java操作redis集群配置[可配置密码]和工具类
导包: redis.clients jedis 2.9.0 org.apache.commons commons-pool2 2.4.2 版本:jedis2.9.0[此版本可以加入密码配置]+原创 2017-11-22 14:10:35 · 4648 阅读 · 0 评论 -
java从网络Url中下载文件例子
【转】http://blog.youkuaiyun.com/xb12369/article/details/40543649/ /** * 从网络Url中下载文件 * @param urlStr * @param fileName * @param savePath * @throws IOExc转载 2017-08-24 15:21:25 · 290 阅读 · 0 评论 -
根据域名获取ip地址
import java.net.InetAddress;/** * Created by gzy on 2017/9/19 16:14. */public class GetIpByDomainName { public String getHostAddr(String domainName){ try { InetAddress ad原创 2017-09-19 16:20:46 · 578 阅读 · 0 评论