鸡哥の博客


  • 首页

  • 标签

  • 分类

  • 归档

  • 搜索

java8使用Optional API来避免NPE

发表于 2018-03-19 | 分类于 java | 阅读次数:

写过Java程序的同学,都遇到过NullPointerException,为了防止空指针异常,程序中往往要添加很多非Null判断。这些判断不仅麻烦,还影响程序的欣赏性和可读性。既然非空判断不可避免,那有没有合适的框架来优雅的解决这一问题呢,java8之前,官方并未提供这样的语法糖,可以使用Guava等外部API来解决这一问题。直到java8提供了Optional API。
《阿里巴巴JAVA开发手册》也推荐开发者使用Optional API来避免NPE。

阅读全文 »

BIO、NIO与AIO(一)

发表于 2018-03-01 | 分类于 java , I/O | 阅读次数:

本文对java中三种I/O方式的用法以及性能进行比较。这三种I/0方式对应着五大模型中的阻塞模型、多路复用模型、异步模型。I/O的应用场景通常包含磁盘I/O和网络I/O,本文从这两个方面介绍三种IO方式,比较三者之间的性能。

阅读全文 »

五大IO模型

发表于 2018-02-07 | 分类于 java , I/O | 阅读次数:

对程序员而言,I/O操作是程序中最常见的操作之一。比如说磁盘文件的读写、数据的网络传输等等。程序=数据结构+算法,其中数据元素的获取就必须通过I/O操作来完成。在当今这个数据大爆炸时代,I/O问题尤其突出,很容易成为一个性能瓶颈。
然而很多程序员甚至是高级程序员对I/O操作只是停留在会用的阶段,遇到相应的业务场景只是去COPY一段代码,小型项目这样当然没问题,对于I/O密集型的项目,如果理解不深,有可能会造成严重的问题。实际工作中我也是这样,经常在网上找一段代码不去分析他的原理,从而走了不少弯路。作为Java程序员,深入的理解I/O操作很有必要,所以在这里做一个系统的整理。

阅读全文 »

跳一跳辅助的java实现

发表于 2018-01-10 | 分类于 java | 阅读次数:

最近微信跳一跳小游戏在朋友圈着实火了一把,为了争第一,朋友圈的最高分一次一次刷新,随后好多人晒出了自己刷分攻略,有制作物理外挂的,有程序外挂的。作为程序员,特别动手能力比较强的程序员,这时候就闲不住了。GitHub上已经有Python版外挂(https://github.com/wangshub/wechat_jump_game),这里我用Java实现。

阅读全文 »

JVM启动流程(源码分析)

发表于 2017-12-15 | 阅读次数:
阅读全文 »

JNDI是什么

发表于 2017-12-08 | 分类于 java | 阅读次数:

面向对象,就意味着对象之间的依赖不可避免。而好的应用程序必然是可维护性高,可扩展性强。依赖或者说耦合是这两者的天敌,耦合度越高程序就越不灵活,所以各种框架各种规范蜂拥崛起,其根本目的就是为了解耦。

为什么会出现JNDI

在讲JNDI前,先来回忆一下绝大多数Java程序员是如何访问数据库的。

阅读全文 »

理解面向对象

发表于 2017-11-29 | 分类于 java | 阅读次数:

从接触java语言时,就已经知道了面向对象,对这个概念总是模模糊糊,理解也是零零散散,没有系统的去了解它。面向对象涉及编程思想以及一些方法论,本文不是深入的研究,而是从如下几个方面去理解一下。

什么是面向对象?

首先,面向对象是一种软件开发方法,是把构成问题的各个事物分解成各个对象,由各个对象协调解决这个问题或完成这项事务。建立对象的目的不是为了完成一个步骤,而是为了描述一个事物在解决问题的过程中经历的步骤和行为。对象作为程序的基本单位,将程序和数据封装其中,以提高程序的重用性,灵活性和可扩展性。对象之间相互独立而又互相调用。

阅读全文 »

分布式事务管理

发表于 2017-11-24 | 分类于 分布式 | 阅读次数:

这是同事在分享会上整理的资料,收获颇丰。

事务管理
几乎所有的Web项目中都会涉及数据库,那么当多个客户行为同时操作到了一条或一批数据时,就有可能因这种并发操作导致他们之间相互产生影响而导致错误的结果。本文将详细介绍这些问题产生的过程以及如何解决这些问题。

阅读全文 »

java native方法

发表于 2017-11-21 | 分类于 java源码阅读 | 阅读次数:

不要给自己找到不学习的理由

概述

JNI(Java Native Interface,Java本地接口)是一种编程框架,使得Java虚拟机中的Java程序可以调用本地应用/或库,也可以被其他程序调用。本地程序一般是用其它语言(C、C++或汇编语言等)编写的, 并且被编译为基于本机硬件和操作系统的程序。

阅读全文 »

了解java标准类库

发表于 2017-11-15 | 分类于 java源码阅读 | 阅读次数:

参考jdk8标准

在阅读java源码之前,首先要了解java各个类库有什么样的作用,各个类库之前又有什么样的关联。

java.applet包

包括Applet类和几个接口,用于创建Java小程序,处理小程序与浏览器之间的相互作用,包括声音图像等多媒体的处理。扩展包javax.swing增加了JApplet,该类派生自Applet,是其扩展版。applet现在主流浏览器几乎不用,可以忽略。

阅读全文 »
12
鸡哥

鸡哥

11 日志
5 分类
11 标签
© 2018 鸡哥
由 Hexo 强力驱动
|
主题 — NexT.Mist v5.1.3