燥热的夏日

                                                 ——  秋叶飘雨 几天的阴雨天稍适凉爽 过后依旧酷暑 没有空调的屋子,风扇显得多么宝贵 无聊的走出屋 起了几公里的单车 赶紧进入朝阳大悦城凉快一下 两杯冰水,解解外面暑 走过人群,帅哥美女如云 找一长椅入座 随处与室内建筑风格是西式的街巷 昏黄的路灯、摆放的花丛 很有一番情调 曾与爱人来过此处 可惜她没有我这样心情 无心理睬这美丽环境,甚是遗憾 如有机会希望朋友们也来这里坐坐 北京朝阳大悦城6层悦界 我走的长椅上有只金色猫咪 走在这静静心也是好的 帅哥看看美女,美女看看帅哥,也未尝不是美事 还有免费的中央空调 清凉一下呢 饿了旁边都是吃食的店铺 楼里的商品我想应该可以满足你99%需求 一个人,两...

阅读全文

MySQL表结构设计注意点

        由于MySQL数据库是基于行(Row)存储的数据库,而数据库操作 IO 的时候是以 page(block)的方式,也就是说,如果我们每条记录所占用的空间量减小,就会使每个page中可存放的数据行数增大,那么每次 IO 可访问的行数也就增多了。反过来说,处理相同行数的数据,需要访问的 page 就会减少,也就是 IO 操作次数降低,直接提升性能。此外,由于我们的内存是有限的,增加每个page中存放的数据行数,就等于增加每个内存块的缓存数据量,同时还会提升内存换中数据命中的几率,也就是缓存命中率。 数据类型选择         数据库操作中最为耗时的操作就是 IO 处理,大部分数据库操作 90% 以上的时间都花在了 IO 读写上面。所以尽可能减少 IO 读写量,可以在很大程度上提...

阅读全文

java常用集合类

在Java中有一套设计优良的接口和类组成了Java集合框架,使程序员操作成批的数据或对象元素极为方便。所有的Java集合都在java.util包中。 1、List接口及其实现类 List接口继承于Collection接口。 List接口及其实现类是容量可变的列表,可按索引访问集合中的元素。 特点: 集合中的元素有序、可重复; 实现类: ArrayList是以Arayy方式实现的List,允许快速随机存取,相对于LinkedList不适合进行插入和移除元素操作; LinkedList提供最佳顺序存取,适合插入和移除元素。 2、Set接口及其实现类 Set接口同样继承于Collection接口。 特点: 集合中的元素无序、不包含重复的元素。 实现类; HashSet 能够快速定位一个元素,要注意...

阅读全文

java面试题

问题:switch(exp)语句能作用的数据类型 参考答案: 问题:说出ArrayList,Vector, LinkedList的存储性能和特性 参考答案:ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。 问题:Collection 和 Collections的区别 参考答案:Collection是...

阅读全文

java注解详解

一、什么是注解 定义:注解(Annotation),也叫元数据(metadata),所谓元数据就是数据的数据。也就是说,元数据是描述数据的。就象数据表中的字段一样,每个字段描述了这个字段下的数据的含义。一种代码级别的说明。注解是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。 二、为什么学习注解 为了能读懂别人的代码,特别是框架相关的代码; 让编程更加简单,代码更加清晰; 注解可以通过代码里标识的元数据生成文档;可以对代码进行分析;可以让编译器实现基本的编译检查。 三、注解有哪几种类型 java自带注解 @Override:注解表示子类要重写父类的对应方法。如果方法利用此注释类型进...

阅读全文

Java异步调用中的Future

Future是什么? 最近写了一些关于netty的相关代码,发现类似netty 的这种异步框架大量的使用一个Future的类。利用这个Futuer类可以实现,代码的异步调用,程序调用耗时的网络或者IO相关的方法的时候,首先获得一个Future的代理类,同时线程并不会被阻塞。继续执行之后的逻辑,直到真正要使用远程调用返回的结果的时候,才需要调用Futuer的get()方法。这样可以提高代码的执行效率。 于是就花了一点时间研究Futuer是如何实现的。调用方式如何知道,结果什么时候返回的呢?如果使用一个线程去轮询flag 标记?那么就很难及达到及时获取新状态,又降低性能开销。所以我们需要了解java的等待通知机制。利用这个机制来构建一个节能环保的Future。等待通知机制一个线程修改了一个对象的...

阅读全文

浅谈自动化测试

为什么要做自动化 纵观整个软件测试的发展,我们就不难理解自动化测试深厚的“群众基础”了。 自动化测试是随着软件开发的规模和迭代的速度而产生的,这是历史发展的必然,因此作为测试人员来说,必须要顺应这个发展趋势,否则就会被社会滚滚向前的车轮所碾压,消失在了历史的长河中,消无声息。 自动化测试的实现 要实现自动化测试就需要测试人员有一定的编码能力,能够实现测试工具的开发和应用,那就会有部分测试人员提出疑问了:对于测试人员来说,开发能力成了我们的核心竞争力?那我们如何竞争得过专业的开发同学呢? 这个问题咱们放到后面专门的文章里再具体讨论,先来看看现在测试行业中自动化测试的现状如何? 首先从我收到的简历来看,大多数人在简历中会写上有自动测试经验,做过接口测试,会使用业界常用的自动化测试工具进行测试;但...

阅读全文

生产环境上,稳定性重于一切:maven SNAPSHOT快照和RELEASE正式版本之间的战争

版本之争         在maven的约定中,依赖的版本分为两类——SNAPSHOT和RELEASE。SNAPSHOT依赖泛指以-SNAPSHOT为结尾的版本号,例如1.0.1-SNAPSHOT。除此之外,所有非-SNAPSHOT结尾的版本号则都被认定为RELEASE版本,即正式版,虽然会有beta、rc之类说法,但是这些只是软件工程角度的测试版,对于maven而言,这些都是RELEASE版本。既然Maven提供了这两类版本号,那么他们之前的优劣势是什么?分别在什么场景下使用?   解读SNAPSHOT         同一个SNAPSHOT版本的依赖可以多次发布(deploy)到仓库中,也就是说同一个SNAPSHOT版本的依赖可以在仓库中存在多份,每一份都是代码在某一个特定时间的快照,这...

阅读全文

汽车与哲学

[摘要]笛卡尔曾经说过:知识好比是大树,哲学是树根,科学则是树枝。而马克思则肯定了科学和哲学的关系,哲学对科学的发展具有指导意义,科学对哲学的验证更加让人信服,由此可见,二者并不是对立的,哲学孕育了科学,科学则推动了哲学的发展。         汽车这个时代的宠儿,绝对算得上是科学世界里一颗璀璨的明珠,100多年的近代汽车发展史,也伴随着人们从第一次工业革命——蒸汽机技术革命,走向第四次工业革命——智能制造技术革命的整个历程。汽车的设计不仅包括其结构和性能的设计,还在于品牌、车身形态等各个方面,一个成熟的汽车品牌和车身形态的打造,必定离不开哲学思想的指导。         本文分别从“师法自然,天人合一”、“阴阳平衡,二者兼顾” 、“飘风不终朝, 骤雨不终日”和“举网以钢,千目皆张”这四个哲...

阅读全文

高效redis开发规范

冷热数据分离,不要将所有数据全部都放到Redis中 虽然Redis支持持久化,但是Redis的数据存储全部都是在内存中的,成本昂贵。建议根据业务只将高频热数据存储到Redis中【QPS大于5000】,对于低频冷数据可以使用MySQL/Wtable/WList/mongoDB等基于磁盘的存储方式,不仅节省内存成本,而且数据量小在操作时速度更快、效率更高! 不同的业务数据要分开存储 不要将不相关的业务数据都放到一个Redis实例中,建议新业务申请新的单独实例。因为Redis为单线程处理,独立存储会减少不同业务相互操作的影响,提高请求响应速度;同时也避免单个实例内存数据量膨胀过大,在出现异常情况时可以更快恢复服务! 存储的Key一定要设置超时时间 如果应用将Redis定位为缓存Cache使用,对于...

阅读全文