随笔分类 - java SE
core java 相关核心基础
摘要:场景: 昨天有位朋友去面试,我问他面试问了哪些问题,其中问了Integer相关的问题,以下就是面试官问的问题,还有一些是我对此做了扩展。 问:两个new Integer 128相等吗? 答:不。因为Integer缓存池默认是-127-128; 问:可以修改Integer缓存池范围吗?如何修改? 答:
阅读全文
摘要:如果你问我,哪一种算法最重要? 我可能会回答"公钥加密算法"。 因为它是计算机通信安全的基石,保证了加密数据不会被破解。你可以想象一下,信用卡交易被破解的后果。 进入正题之前,我先简单介绍一下,什么是"公钥加密算法"。 一、一点历史 1976年以前,所有的加密方法都是同一种模式: (1)甲方选择某一
阅读全文
摘要:最近在使用BigDecimal进行四舍五入时,发现setScale()方法设置的精度值并没有起作用,一度让我怀疑起是否jdk有bug,代码如下: 错误代码 double d = 7.199999999999999; BigDecimal decimal = new BigDecimal(String
阅读全文
摘要:百家号03-1714:11 百家号03-1714:11 百家号03-1714:11 题图:by jordhammond from instagram 本文选自聊聊架构公众号,略有修改 以前我们 Java 程序员经常会对其他语言中的 var 关键字耿耿于怀,如今,Java 10 也要启用 var 进行
阅读全文
摘要:思考: 调用一个方法得到了返回值却不能直接将返回值作为参数去调用别的方法。 原来解决方案: 我们首先要判断这个返回值是否为null,只有在非空的前提下才能将其作为其他方法的参数。这正是一些类似Guava的外部API试图解决的问题。 一些JVM编程语言比如Scala、Ceylon等已经将对在核心API
阅读全文
摘要:简介(译者注:虽然看着很先进,其实Lambda表达式的本质只是一个"语法糖",由编译器推断并帮你转换包装为常规的代码,因此你可以使用更少的代码来实现同样的功能。本人建议不要乱用,因为这就和某些很高级的黑客写的代码一样,简洁,难懂,难以调试,维护人员想骂娘.)Lambda表达式是Java SE 8中一
阅读全文
摘要:前言 本篇主要讲解Java中的IO机制和网络通讯中处理高并发的NIO 分为两块:第一块讲解多线程下的IO机制第二块讲解如何在IO机制下优化CPU资源的浪费(New IO) Echo服务器 单线程下的socket机制就不用我介绍了,不懂得可以去查阅下资料那么多线程下,如果进行套接字的使用呢?我们使用最
阅读全文
摘要:使用单线程模拟多线程,提高资源利用率和程序的效率,增加系统吞吐量。下面例子比较形象的说明了什么是反应器模式: 一个老板经营一个饭店, 传统模式 - 来一个客人安排一个服务员招呼,客人很满意;(相当于一个连接一个线程) 后来客人越来越多,需要的服务员越来越多,资源条件不足以再请更多的服务员了,传统模式
阅读全文
摘要:具体可参考:Java并发编程:Thread类的使用,这里对线程状态的转换及主要函数做一下补充。 一. 线程状态转换图 注意: 调用obj.wait()的线程需要先获取obj的monitor,wait()会释放obj的monitor并进入等待态。所以wait()/notify()都要与synchron
阅读全文
摘要:转自: 【解惑】剖析float型的内存存储和精度丢失问题 1、小数的二进制表示问题 首先我们要搞清楚下面两个问题: (1) 十进制整数如何转化为二进制数,其实就是采用的科学计数法 算法很简单。举个例子,11表示成二进制数: 11/2=5 余 1 5/2=2 余 1 2/2=1 余 0 1/2=0 余
阅读全文
摘要:Java堆中是JVM管理的最大一块内存空间。主要存放对象实例。 在JAVA中堆被分为两块区域:新生代(young)、老年代(old)。 堆大小=新生代+老年代;(新生代占堆空间的1/3、老年代占堆空间2/3) 新生代又被分为了eden、from survivor、to survivor(8:1:1)
阅读全文
摘要:Flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。支持在系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。Flume 初始的发行版本目前被统称为 Flume OG(original generation),属于
阅读全文
摘要:转自: http://blog.csdn.net/javazejian/article/details/73413292 关联文章: 深入理解Java类型信息(Class对象)与反射机制 深入理解Java枚举类型(enum) 深入理解Java注解类型(@Annotation) 深入理解Java类加载
阅读全文
摘要:版权声明:本文为博主原创文章,未经博主允许不得转载。 http://blog.csdn.net/chenchaofuck1/article/details/51045134 版权声明:本文为博主原创文章,未经博主允许不得转载。 http://blog.csdn.net/chenchaofuck1/a
阅读全文
摘要:转自: http://www.cnblogs.com/zhenw/p/6160931.html 函数式编程作为结构化编程的一种,正在受到越来越多的重视。工程中不在只是面向对象编程,更多的人尝试着开始使用函数式编程来解决软件工程中遇到的问题。 什么是函数式编程?在维基百科中给出了详细的定义,函数式编程
阅读全文
摘要:为什么需要 Stream Stream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。它也不同于 StAX 对 XML 解析的 Stream,也不是 Amazon Kinesis 对大数据实时处理的 Stream
阅读全文
摘要:转自: http://blog.csdn.net/whuslei/article/details/6667471 建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示: 先来看看如何建立连接的。 【更新于2017.01.04 】该部分内容配图有误,请大家见谅,正确的配图如下,
阅读全文
摘要:Netty是什么? 本质:JBoss做的一个Jar包 目的:快速开发高性能、高可靠性的网络服务器和客户端程序 优点:提供异步的、事件驱动的网络应用程序框架和工具 通俗的说:一个好使的处理Socket的东东 如果没有Netty? 远古:java.net + java.io 近代:java.nio 其他
阅读全文
摘要:原作者:海子 原作者:海子 出处:http://www.cnblogs.com/dolphin0520/ 在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降
阅读全文
摘要:转自:http://blog.csdn.net/xuefeng0707/article/details/40834595 从JDK1.2起,就有了HashMap,正如前一篇文章所说,HashMap不是线程安全的,因此多线程操作时需要格外小心。 在JDK1.5中,伟大的Doug Lea给我们带来了co
阅读全文