Java平台
文章平均质量分 81
unauthorized401
这个作者很懒,什么都没留下…
展开
-
温故 Java 8 中引入的 Optional 类
前言为什么要有Optional类?(它试图去解决什么问题呢?)答:Optional类试图去解决Java系统中大量出现的NullPointerException问题和繁琐的null检查。使用Optional常用方法:创建 Optional 对象,使用of(T) 或者 ofNullable(T),它们的不同点在于对于传入的参数为null时,是如何处理的。of(T) 如果传入的参数为nu...原创 2018-12-04 00:28:03 · 221 阅读 · 0 评论 -
Java面试中异常常见问题
Java的异常机制(概念)Java语言中的异常处理包括的四个环节。声明异常 throws关键字可以在方法上声明该方法要抛出的异常,然后在方法内部通过throw抛出异常对象。 抛出异常 throw用于抛出异常。捕获异常 try是用于检测被包住的语句块是否出现异常,如果有异常,则抛出异常,并执行catch语句。处理异常 cacth用于捕获从try中抛出的异常并作出处理。 fina转载 2016-10-20 18:49:01 · 886 阅读 · 0 评论 -
JDBC中的Statement和PreparedStatement对比
首先关于Statement和PreparedStatement的基本概念我就不再叙述了,可以参考这篇文章,下面我们来看几个测试例子吧。测试场景现在我们向数据库中的一张表中插入100000(10万)条数据,测试使用Statement和PreparedStatement及PreparedStatement的Batch方式所需要的时间。原创 2016-10-19 17:16:38 · 1010 阅读 · 0 评论 -
HashMap和HashTable的选择
关于编程中HashMap和HashTable的选择问题,我们可以先看看下面这些问题。历史问题:Hashtable是个过时的集合类,是基于陈旧的Dictionary类的,并且存在于Java API中很久了。在Java 4中被重写了,实现了Map接口,所以自此以后也成了Java集合框架中的一部分,而HashMap是Java 1.2引进的Map接口的一个实现。同步问题:HashMap是非synchronize原创 2016-11-09 20:50:51 · 763 阅读 · 0 评论 -
生产者和消费者问题
生产者和消费者是操作系统中的一个经典问题,这个问题是在讲“进程同步”时的一个例子,下面我就用Java语言中的notify和wait关键字实现这个算法。生产者/** * Description: 生产者. * * @author: crane-yuan * @date: 2016年11月5日 下午3:27:46 */public class Producer extends Thread原创 2016-11-06 14:24:14 · 1053 阅读 · 0 评论 -
怎样判断Array(无序)中是否包含某个值呢?
怎样去判断Array(无序)中是否包含某个值呢?这是一个在Java中经常被问到的问题。它也是Stack Overflow上投票前几的一个问题。下面将展示投票前几的几个回答,这些回答使用不同的方式解决了这个问题,但是,时间复杂度也是各有不同的。四种解决方法使用List public static boolean useList(String[] arr, String targetValue) {翻译 2016-11-05 12:21:12 · 1520 阅读 · 0 评论 -
Maven+Nexus+Myeclipse集成
Maven 是一个基于项目对象模型(POM)的,提倡约定优于配置(ConventionOver Configuration)的,跨平台的项目管理和构建自动化工具。首先它是一个优秀的构建工具(构建自动化、消除构建重复、标准化构建过程),其次它还是一个依赖管理工具、项目信息管理工具(如:Mylyn)。Maven安装工具下载Maven3.0.4下载maven配置maven下载后,需要原创 2016-11-02 23:55:44 · 1712 阅读 · 0 评论 -
Java历史简介
Java是一种计算机编程语言,拥有跨平台、面向对象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言。希望用于控制嵌入在有线电视交换盒、PDA等的微处理器1994年将Oak语言更名为Java1998年JDK1.2时,更名为Java 2 Platform 分为标准版J2SE,企业版翻译 2016-09-08 21:33:55 · 42588 阅读 · 2 评论 -
Java Map按Value排序
Map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等。TreeMap:基于红黑树(Red-Black tree)的 NavigableMap 实现,该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。原创 2016-08-15 12:14:08 · 1083 阅读 · 0 评论 -
浮点数进行精确计算的问题
在计算机科学中,浮点(英语:floating point,缩写为FP)是一种对于实数的近似值数值表现法,由一个有效数字(即尾数)加上幂数来表示,通常是乘以某个基数的整数次指数得到。以这种表示法表示的数值,称为浮点数(floating-point number)。原创 2016-12-28 16:59:51 · 2460 阅读 · 0 评论 -
多启动U盘制作流程
看多了网上的一键制作U盘启动盘的工具,有没有想过自己动手熟悉一下U盘启动盘的制作过程呢?这篇文章将告诉你如何一步一步制作「多系统启动U盘」。原创 2017-02-07 18:24:06 · 5097 阅读 · 0 评论 -
温故 Java 8 日期 API
前言为什么我们需要一个新的日期和时间库?Java开发中一个长期存在的窘境是对普通开发者的date和time用例支持不足。例如,现存的类(例如java.util.Date和SimpleDateFormatter)不是线程安全的,导致潜在的并发问题——不是普通开发者所期望的编写日期处理时的代码。一些日期和时间类也表现出相当差的API设计。例如,java.util.Date中的年份开始于190...原创 2018-12-02 23:39:19 · 677 阅读 · 0 评论 -
Spring Data JPA Vs Hibernate JPA Vs JPA
前言从文章的标题,就可以清晰地了解到,本文是来辨析三个容易将新手弄糊涂的技术名词。如果,你一眼看过去就知道这三个名词的区别及关系,那么,这篇文章你可以不用继续读下去了;除非,你是想要看看我有什么解释的不对,来纠错的(来找茬,哈哈),也欢迎留言。名词解释JPA(Java Persistence API,Java持久化API),它是一个关于如何处理对象关系映射(object-rela...原创 2018-07-31 00:25:42 · 716 阅读 · 0 评论 -
《Effective Java 第三版》新条目介绍
前言从去年的3月份起我就在开始读《Effective Java 第二版》,当然,我读的是中文版的;可能是我理解能力还不行,对于书中的内容总是感觉理解困难;就拿第一章的内容「创建和销毁对象」来说吧,这是我读的次数最多的一章,想必原因大家也是明白的,每次我读不下去的时候,我就从头开始读,所以,现在我对这本书的第一章是最为熟悉的了。后来,有一次我上网看到有网友说这本书确实和绝大部分的翻译书籍一样,对...原创 2020-04-30 12:49:35 · 40707 阅读 · 15 评论 -
Java 注解介绍
Java注解又称Java标注,是Java语言5.0版本开始支持加入源代码的特殊语法元数据(元数据 Metadata:描述数据的数据)。Java语言中的类、方法、变量、参数和包等都可以被标注。和Javadoc不同,Java标注可以通过反射获取标注内容。在编译器生成类文件时,标注可以被嵌入到字节码中。Java虚拟机可以保留标注内容,在运行时可以获取到标注内容。 当然它也支持自定义Java标注。原创 2017-12-29 00:18:13 · 662 阅读 · 0 评论 -
使用Spring Boot的AOP处理自定义注解
前言上一篇文章Java 注解介绍讲解了下Java注解的基本使用方式,并且通过自定义注解实现了一个简单的测试工具;本篇文章将介绍如何使用Spring Boot的AOP来简化处理自定义注解,并将通过实现一个简单的方法执行时间统计工具为样例来讲解这些内容。AOP概念 面向侧面的程序设计(aspect-oriented programming,AOP,又译作面向方面的程序设计、观点导向原创 2018-01-12 00:37:54 · 12079 阅读 · 0 评论 -
MySQL 5.7 复制原理简介
通过复制,可以将来自一个MySQL数据库服务器(主服务器)的数据复制到一个或多个MySQL数据库服务器(从服务器)。 默认情况下复制是异步的; 从服务器不需要一直连接以接收来自主站的更新。 根据配置,可以复制数据库中的所有数据库,选定数据库甚至选定的表。原创 2017-11-30 23:43:31 · 716 阅读 · 0 评论 -
以Docker方式实现MySql 主从复制(实践篇)
本文实践了用Docker方式来实现基于binlog的MySql主从复制。关于MySql主从复制的原理将在下一篇中进行讲解。原创 2017-10-31 23:40:00 · 792 阅读 · 3 评论 -
Kafka快速入门
Apache Kafka was originated at LinkedIn and later became an open sourced Apache project in 2011, then First-class Apache project in 2012. Kafka is written in Scala and Java.原创 2017-08-31 23:59:59 · 474 阅读 · 0 评论 -
tmux进阶之tmuxinator
tmuxinator是tmux的配置管理工具,解决了tmux服务器关机后session丢失问题。tmuxinator可以根据配置文件快速创建tmux的session。这篇文章将告诉你如何安装tmuxinator,及简单的配置讲解。原创 2017-03-03 14:43:00 · 4259 阅读 · 2 评论 -
Java中访问修饰符和构造函数的一点总结
JAVA访问修饰符public|privateprotecteddefault原创 2016-08-23 21:39:27 · 2959 阅读 · 1 评论 -
Java文件拷贝的几种实现方案
1.FileInputStream2.FileChannel3.IORedirect4.ApacheCommonIO中的FileUtils.copyFile()方法5.jdk1.7中的Files.copy()方法原创 2016-08-22 21:13:51 · 1733 阅读 · 0 评论 -
StackOverflow上七个有趣的Java问题
StackOverflow(后边简称so)发展到目前,已经成为了全球开发者的金矿。它能够帮助我们找到在各个领域遇到的问题的最有用的解决方案,同时我们也会从中学习到很多新的东西。这篇文章是在我们审阅了so上最流行的Java问题以及答案后从中挑出来的。即使你是一个有丰富经验的开发者,也能从中学到不少东西。原创 2016-08-11 15:38:38 · 1187 阅读 · 0 评论 -
Java中的Date和Calendar的常用用法
在java中用到的最多的时间类莫过于 java.util.Date了, 由于Date类中将getYear(),getMonth()等获取年、月、日的方法都废弃了, 所以要借助于Calendar来获取年、月、日、周等比较常用的日期格式 注意:以下代码均已在jdk1.6中测试通过,其他版本可能使用不同,请注意!Date与String的互转用法/** * Date与String的互转用法,这里原创 2016-08-04 18:45:52 · 1782 阅读 · 0 评论 -
使用双引号““创建Java字符串还是使用String构造函数?
在Java中,一个字符串可以使用下面这两种方式进行创建:String x = "abc";String y = new String("abc");这两种创建字符串的方式有什么不同呢?双引号 VS 构造函数这个问题可以用下面这两个简单的代码实例来回答。例子1:String a = "abcd";String b = "abcd";System.out.println(a == b);翻译 2016-08-15 21:13:11 · 1710 阅读 · 0 评论 -
面向对象设计原则和创建SOLID应用的5个方法
最近我听到了很多关于函数式编程(FP),受之启发我觉得也应该关注面向对象编程(OOP)和面向对象设计(OOD),因为在设计系统时这些仍然非常重要。我们将以SOLID原则为起点开始我们的旅程。SOLID原则是类级别的,面向对象的设计理念,它们与测试工具一起帮你改进腐坏的代码。SOLID由程序员们最喜欢的大叔 Robert C. Martin(Bob大叔)提出,它其实是五个其他缩略词的组合——SRP,转载 2016-08-15 16:50:49 · 419 阅读 · 0 评论 -
Java程序员应该知道的10个面向对象理论
面向对象理论是面向对象编程的核心,但是我发现大部分Java程序员热衷于像单例模式、装饰者模式或观察者模式这样的设计模式,而并没有十分注意学习面向对象的分析和设计。学习面向编程的基础(如抽象,封装,多态,继承等)是非常重要的,而运用它们来设计干净的模块也同样重要。我也认识很多不同等级的程序员,他们没有听过这些面向对象理论,或者不知道某个设计理论有什么好处,或者如何在编码中使用这些设计理论。我们起码要设转载 2016-08-15 16:34:31 · 259 阅读 · 0 评论 -
Java中class的初始化顺序
(static对象和static代码块,依据他们的顺序进行初始化)>成员变量>构造函数class的装载在讲class的初始化之前,我们来讲解下class的装载顺序。以下摘自《Thinking in Java 4》 由于Java 中的一切东西都是对象,所以许多活动 变得更加简单,这个问题便是其中的一例。正如下一章会讲到的那样,每个对象的代码都存在于独立的文件 中。原创 2016-08-15 15:14:21 · 1046 阅读 · 0 评论 -
JAVA中的接口和抽象类
在面向对象的概念中,我们知道所有的对象都是通过类来描绘的,但是并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。 抽象类往往用来表征我们在对问题领域进行分析、 设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象,我们不能把它们实例化(拿不出一个具体的东西)所以称之为抽象。 比如:我们要描述“水果”,它就是转载 2016-08-03 21:03:17 · 226 阅读 · 0 评论 -
myeclipse中java注释格式设置
Eclipse注释规范模版总结具体操作在eclipse中,打开Window->Preference->Java->Code Style->Code Template然后展开Comments节点就是所有需设置注释的元素,参照下面注释规范对应设置即可注释规范文件(Files)注释标签/** * FileName: ${file_name} * @Description: $原创 2016-08-03 17:28:57 · 877 阅读 · 0 评论 -
Java内部类的作用
定义放在一个类的内部的类我们就叫内部类。作用内部类可以很好的实现隐藏内部类拥有外围类的所有元素的访问权限可实现多重继承可以避免修改接口而实现同一个类中两种同名方法的调用例子实现隐藏平时我们对类的访问权限,都是通过类前面的访问修饰符来限制的,一般的非内部类,是不允许有 private 与protected权限的,但内部类可以,所以我们能通过内部类来隐藏我们的信息。可以看下面的例子 接口pu转载 2016-06-19 17:23:56 · 367 阅读 · 0 评论 -
HashMap遍历的四种方法
在Java中有多种遍历HashMAp的方法。让我们回顾一下最常见的方法和它们各自的优缺点。由于所有的Map都实现了Map接口,所以接下来方法适用于所有Map(如:HaspMap,TreeMap,LinkedMap,HashTable,etc)方法1 使用For-Each迭代entries这是最常见的方法,并在大多数情况下更可取的。当你在循环中需要使用Map的键和值时,就可以使用这个方法Map<Int原创 2016-07-12 16:53:00 · 682 阅读 · 0 评论 -
Java中Scanner类和BufferReader类之间的区别
java.util.Scanner类是一个简单的文本扫描类,它可以解析基本数据类型和字符串。它本质上是使用正则表达式去读取不同的数据类型。Java.io.BufferedReader类为了能够高效的读取字符序列,从字符输入流和字符缓冲区读取文本。下面是两个类的不同之处:当nextLine()被用在nextXXX()之后,用Scanner类有什么问题尝试去猜测下面代码的输出内容;翻译 2016-08-17 09:26:43 · 3000 阅读 · 0 评论 -
UML类图六大关系总结
在UML类图中,常见的有以下几种关系:泛化(Generalization)实现(Realization)关联(Association)聚合(Aggregation)组合(Composition)依赖(Dependency)各种关系的强弱顺序:泛化= 实现> 组合> 聚合> 关联> 依赖原创 2016-08-01 21:00:54 · 5558 阅读 · 1 评论 -
Java语言中的协变和逆变
协变和逆变指的是宽类型和窄类型在某种情况下的替换或交换的特性。协变就是用一个窄类型替代宽类型逆变则用宽类型覆盖窄类型。转载 2016-08-17 21:07:29 · 2984 阅读 · 0 评论 -
Java中常见的RunTime异常及异常详解
常见的RunTime异常几种如下: NullPointerException - 空指针引用异常ClassCastException - 类型强制转换异常。IllegalArgumentException - 传递非法参数异常。ArithmeticException - 算术运算异常ArrayStoreException - 向数组中存放与声明类型不兼容对象异常IndexOutOfBoundsException - 下标越界异常NegativeArraySizeException - 创建一原创 2016-08-11 09:52:49 · 37179 阅读 · 2 评论 -
Java中资源关闭的处理方式
本文就关于IO资源的处理问题,提出三种方案。close()放在try块中close()放在finally块中使用try-with-resource语句翻译 2016-08-23 13:52:03 · 5255 阅读 · 0 评论 -
Java中util.Date和sql.Date的相互转换
Java中Date的两个类java.util.Date通常情况下用它获取当前时间或构造时间java.sql.Date是针对SQL语句使用的,它只包含日期而没有时间部分它们都有getTime方法返回毫秒数,都可以直接构造代码示例:// util.date转换成sql.datejava.util.Date utilDate = new java.util.Date(); //获取当前时间Sys原创 2016-08-10 16:16:47 · 19427 阅读 · 5 评论 -
ArrayList等常见集合的排序问题
对于ArrayList等常用的集合具体业务类,基本上都实现了Comparable接口,即可以用来比较装载的对象实体。主要用Collections.sort方法对集合类中的对象进行排序Collections.sort的两种重载方法Collections.sort(list, comparator)方法,通过comparator规则,实现对list的特定排序。原创 2016-08-10 11:21:50 · 2709 阅读 · 0 评论 -
图解Java字符串的不变性
这儿有几个图例可以解释Java字符串的不变性。声明一个字符串String s = "abcd";s存储字符串对象的引用。这下面的箭头可以解释存储引用的概念。 通过另一个字符串变量给一个字符串变量赋值String s2 = s;s2存储着和s一样的引用值,因为,它是同一个字符串对象。 连接字符串s = s.concat("ef");s现在存储着一个新创建的字符串的引用。 总结一旦一个字符串在内存翻译 2016-08-21 20:16:55 · 1444 阅读 · 0 评论