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

我是攻城师

专栏作者
492
文章
955747
阅读量
119
订阅数
关于zookeeper写入数据超过1M大小的踩坑记
某天晚上集群的一个任务提交一直失败,经过排查日志,发现是zk客户端写入的数据包过大,导致报错。我们来看下,这中间发生了什么。
我是攻城师
2019-09-30
12.8K1
深入理解jar包冲突的本质
上篇文章 记一次log4j不打印日志的踩坑记 介绍了遇到的log4j踩坑经历和解决方法,这篇文章我们重点来学习和了解下有关Java中日志组件的内容,在这之前,其实在我的头脑里,并没有形成系统的日志框架知识,原因其实是一直没有重视过这块,之前都是各种拷贝改改能跑就行,并不理解相关的架构和原理,这次趁着这个机会正好来系统了解一下,除了要系统的理解日志框架大多数知识外,我们还要学习一个非常关键的知识,就是关于Java默认的类加载器加载jar包的顺序问题,不夸张的说,只有理解了这个,才能搞明白jar冲突问题发生的本质。
我是攻城师
2019-09-25
2.1K0
优秀攻城师必知的正则表达式语法
最近公司的一个项目,大量用到了正则来处理文本,以前对正则使用仅限于小打小闹,用的也是一知半解,经过本次的深入使用,发现正则表达式真的是每一位开发者都需要具备的一个基础技能,处理文本的功能异常强大。今天我们就来系统的学习一下它。
我是攻城师
2019-08-05
1.2K0
如何动手撸一个简单的LFU缓存
关于第一种FIFO策略的实现,比较简单,可采用固定长度的数组和链表来处理,这里就不重点说了。今天我们的重点是LFU缓存的实现。
我是攻城师
2019-07-30
1.1K0
Java基本类型的内存分配在栈还是堆
我们都知道在Java里面new出来的对象都是在堆上分配空间存储的,但是针对基本类型却有所区别,基本类型可以分配在栈上,也可以分配在堆上,这是为什么?
我是攻城师
2019-07-24
2.5K0
Java反射从放弃到入门
Java反射特性提供了在运行时可以动态访问和修改类和实例内部的状态的功能。反射是Java语言里面一个高级的话题之一,使用反射我们可以在运行时轻松的内省一个类,接口以及枚举,可以获取他们的结构,方法和字段信息,即使在编译期间没法访问。最后我们也可以通过反射来实例化一个对象,调用对象的方法和修改字段的值等。
我是攻城师
2019-07-12
4720
Java反射是什么
Java的反射特性是一项非常强大和有用的功能,它使得我们可以轻松的在运行时观察到类实例的内部状态,并且可以动态的操作实例,从而为Java语言提供更多更灵活的想象空间。随便举几个例子:使用反射可以动态的映射Java对象属性到Json文件属性的操作,这一点无论在FastJson,还是GSON或者是jackson上都体现的淋漓尽致。此外使用反射可以轻松的用在JDBC中完成Java Bean和数据库表的动态适配组装,如我们熟知的hibnate,jpa,等持久化框架也都是利用了这种特性,最后无论是动态代理的AOP,还是OSGI的动态加载都离不开反射的辅助,由此可见反射的强大之处。
我是攻城师
2019-07-08
8180
如何通过Java反射获取泛型类型信息
关于Java泛型,很多人都有一个误解,认为Java代码在编译时会擦除泛型的类型,从而在运行时导致没法访问其类型,这其实并不完全正确,因为有一部分泛型信息是可以在运行时动态获取的,这部分信息基本能够满足我们日常开发中的大多数场景,本篇文章我们就来了解相关的知识。
我是攻城师
2019-06-17
8.9K0
Java接口Comparable和Comparator的区别
这是一段非常简单的使用集合工具类排序的代码,这里有个问题,我们什么也没指定,默认就按字母升序排了,这是为什么?通过查看String类的源码,我们能够发现其实现了三个接口,如下:
我是攻城师
2019-04-28
1.2K0
关于Java中的assert关键字
Java中有一个不太常用的关键字assert,是jdk1.4中加入的,平时开发中见的很少,不过在一些框架的源码里面的测试类里面,出现过不少它的踪迹。
我是攻城师
2019-03-06
26.3K0
关于Java里面volatile关键字的重排序
第一条可见性比较容易理解,就是使用volatile修饰的共享变量,如果有一个线程修改了值,其他的线程里面是立即可见的。原理是对volatile变量的读写,都会强制线程操作从主内存。
我是攻城师
2019-03-06
1.1K0
为什么Java里面String类是不可变的
在Java里面String类型是不可变对象,这一点毫无疑问,那么为什么Java语言的设计者要把String类型设计成不可变对象呢?这是一个值得思考的问题。
我是攻城师
2019-03-06
6930
如何扩展python的logging组件支持json日志输出
这两天在优化公司一个python的项目,顺便研究了一下如何将python日志转成json格式,原来在Java的项目中搞过类似的事情,知道日志转成json之后有很多便利的之处,最常见的就是可以直接对接各种日志分析系统,如开源的ELK,将数据导入之后就能快速的进行查询和分析,方便做各种统计,监控或报警等。
我是攻城师
2019-03-06
2.7K0
如何将编程语言里面的字符串转成数字?
其他的编程语言就不一一列举了,使用工具类进行转换人人都会,所以并不重要,重要的是我们要来学习下它底层是如何转换的,先上我用Java实现的一段代码如下:
我是攻城师
2019-03-06
1.2K0
什么是线程安全?
线程安全在多线程编程时是一个比较重要的概念,我们下先来看下维基百科是如何定义这个概念的:
我是攻城师
2019-03-06
1.9K0
为什么编程语言中数组的下标总是从0开始?
昨天看到一个有意思的问题,为什么在我们遇到的大多数编程语言里面,数组的下标基本都是从0开始?
我是攻城师
2019-01-02
1.9K0
多线程协作打印ABC之ReentrantLock版本
我们介绍了在Java里面使用synchronized + wait/notifyAll实现的多线程轮流打印特定的字符串,输出的结果如下:
我是攻城师
2018-12-26
1.1K0
一次ArrayList的使用不当导致线上jstorm任务启动失败的案例
最近一次的的项目版本迭代中,我们的jstorm项目里面增加了一些新的功能,开发完毕后,按照正常的上线流程,代码是需要在开发,测试和预发布环境,测试完毕后才能上线。 这次上新版本也不例外,在所有的环境都测试之后并无任何问题,然后由OP上线,结果发布失败。
我是攻城师
2018-12-25
1.3K0
多个线程如何轮流打印ABC特定的次数?
这类问题其实并不难,只要掌握了Java里面线程协作和锁的知识,就可以轻而易举的搞定:
我是攻城师
2018-12-25
2.5K0
各种IO复用模式之select,poll,epoll,kqueue,iocp分析
上篇文章,我们介绍了Java IO框架的演变,其实编程语言的IO实现是依赖于底层的操作系统,如果OS内核不支持,那么语言层面也无能为力。任何一个跨平台的编程语言,一定是能够在不同操作系统之间选择使用最优的IO模型,那么不同平台的io策略都有哪些实现呢?本篇文章我们就来了解一下。
我是攻城师
2018-12-17
7.3K0
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档