
Java
insping
想想自己为什么在这
展开
-
java中foreach循环的注意事项
简单的ArrayList小例子: List<Integer> list = new ArrayList<>(); list.add(1); list.add(2); list.add(3); for (Integer integer : list) { System.out.println(inte原创 2016-07-11 10:26:26 · 2247 阅读 · 1 评论 -
JAVA设计模式之工厂方法模式
一.定义是一种常用的对象创建型设计模式,此模式的核心精神是封装类中不变的部分,提取其中个性化善变的部分为独立类,通过依赖注入以达到解耦、复用和方便后期维护拓展的目的。它的核心结构有四个角色,分别是抽象工厂;具体工厂;抽象产品;具体产品.抽象工厂(Creator)角色:是工厂方法模式的核心,与应用程序无关。任何在模式中创建的对象的工厂类必须实现这个接口。具体工厂(Concrete Creator)原创 2017-01-23 17:43:50 · 491 阅读 · 0 评论 -
JAVA设计模式之单例模式
一.定义单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例.二.单例模式的写法(Java)1.懒汉-方法1public class Singleton { private Singleton() { } private static Singleton instance = null; publi原创 2017-01-23 16:26:37 · 346 阅读 · 0 评论 -
JAVA设计模式之抽象工厂模式
一.简介抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态。学习之前抽象工厂模式之前,最好事先熟悉下工厂方法模式. 工厂方法模式:http://blog.youkuaiyun.com/hspingcc/article/details/54695008抽象工厂模式的出现背景简单的说一下,是由于工厂方法模式设计的时候存在一个问题,类的创建依赖工厂类,也就是说,如果想要拓展程序(比如就上个链接中的工原创 2017-01-24 10:33:19 · 437 阅读 · 0 评论 -
JAVA设计模式之创建者模式
一.简介将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式(来自:设计模式:可复用面向对象软件的基础)。 传送门: 工厂方法模式:http://blog.youkuaiyun.com/hspingcc/article/details/54695008 抽象工厂模式:http://blog.youkuaiyun.com/hspingcc/article/det原创 2017-01-24 11:06:25 · 394 阅读 · 0 评论 -
java详解浅复制和深复制
一.简介⑴浅复制(浅克隆) 被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。换言之,浅复制仅仅复制所考虑的对象,而不复制它所引用的对象。 ⑵深复制(深克隆) 被复制对象的所有变量都含有与原来的对象相同的值,除去那些引用其他对象的变量。那些引用其他对象的变量将指向被复制过的新对象,而不再是原有的那些被引用的对象。换言之,深复制把要复制的对象所引用的对象都复原创 2017-01-24 13:35:33 · 835 阅读 · 0 评论 -
JAVA设计模式之原型模式
一.简介原型模式是一种创建型设计模式,原型模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节.工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建。二.实现在此之前你最好能对浅复制和深复制有一定的理解. java详解浅复制和深复制 http://blog.youkuaiyun.com/hspingcc/articl原创 2017-01-24 14:53:48 · 389 阅读 · 0 评论 -
Java%(取模运算)详解
一.Java的取模运算1.实现算法public static double ramainder(double dividend, double dividor) { return dividend - dividend / dividor * dividor; }2.java的取模运算支持类型:字符型(自然不包括负数)、字节型、短整型、整型、长整型、单精度浮点型、双精度浮点型原创 2017-01-20 10:58:46 · 40247 阅读 · 0 评论 -
Java8中计算日期时间差
一.简述在Java8中,我们可以使用以下类来计算日期时间差异:1.Period2.Duration3.ChronoUnit二.Period类主要是Period类方法getYears(),getMonths()和getDays()来计算.示例:package insping;import java.time.LocalDate;import java.time.Month;import j原创 2017-06-16 15:50:05 · 65214 阅读 · 1 评论 -
Java8中 Date和LocalDate的相互转换
一.简述Date对象表示特定的日期和时间,而LocalDate(Java8)对象只包含没有任何时间信息的日期。因此,如果我们只关心日期而不是时间信息,则可以在Date和LocalDate之间进行转换。二.Date转LocalDate如果要将java.util.Date转换为java.time.LocalDate,可以使用以下步骤:1)将java.util.Date转换为ZonedDateTime原创 2017-06-16 15:30:57 · 176379 阅读 · 1 评论 -
Java8中 Date和LocalDateTime的相互转换
一.在Java 8中将Date转换为LocalDateTime方法1:将Date转换为LocalDatetime,我们可以使用以下方法:1.从日期获取ZonedDateTime并使用其方法toLocalDateTime()获取LocalDateTime2.使用LocalDateTime的Instant()工厂方法示例:package insping;import java.time.Instan原创 2017-06-16 15:38:49 · 182631 阅读 · 5 评论 -
Eclipse一闪而过的问题解决
一.Eclipse一闪而过二.打开cmd 输入 “Java -version”显示Error occurred during initialization of VMjava/lang/NoClassDefFoundError: java/lang/Object三.其他解决方案附上其他的解决方案1.[修改eclipse.ini相关参数](https://stackoverflow.com/q原创 2017-08-07 09:56:02 · 3097 阅读 · 1 评论 -
JDK各版本的下载
链接地址 http://www.oracle.com/technetwork/java/archive-139210.html原创 2017-08-07 09:58:28 · 1365 阅读 · 1 评论 -
使用优先队列实现游戏公告模块(Java)
一.问题描述**实现公告消息分优先级,优先级高的公告,优先推送,同一优先在其后面加入.有点像是队列里面的分组还是队列的数据结构.思路首先使用优先级做队列,然后根据时间戳做队列.然后定期推送.如果优先级高者加入,立刻推送,并将未播放完的公告加入队列.**二.相关的类和方法的实现Notice类:公告的消息体/** * 公告信息体 * * @author insping * */publi原创 2016-07-06 12:17:44 · 2074 阅读 · 0 评论 -
Java正则表达式详解(Pattern类和Matcher类)
一.Pattern类(import java.util.regex.Pattern)通过Pattern.complie(String regex)简单工厂方法创建一个正则表达式(PS:它的构造方法是私有的,不可以直接创建) Pattern p = Pattern.compile("java*"); p.pattern();// 返回java* ,返回的既是正则字符串.1原创 2017-01-17 10:06:04 · 2063 阅读 · 0 评论 -
详解java中&&和&
一 . 首先两者都是逻辑与运算1.都具备逻辑与的功能 if (true&&true) { System.out.println("true"); } //结果:true if (true&true) { System.out.println("true"); }原创 2016-07-12 14:17:16 · 638 阅读 · 0 评论 -
详解ArrayList的remove的方法
总结. ArrayList的remove的方法,如果remove()的参数是int类型,则无论ArrayList的类型为任何类型,都是移除对应的下标的对象.例如: 一.类型为非integer型ArrayList<Long> non_intArr = new ArrayList<>();non_intArray.add(1L);non_intArray.add(2L);non_intArray原创 2016-06-02 19:23:46 · 2065 阅读 · 0 评论 -
对比ArrayList和LinkedList 使用普通循环和迭代循环的性能
先看一下例子:public static void testForAndIterator() { int result; List<Integer> a = new ArrayList<>(); LinkedList<Integer> b = new LinkedList<>(); for (int index = 0; index <原创 2016-06-30 10:19:49 · 1785 阅读 · 0 评论 -
常用屏蔽字符的处理方法
一、功能介绍:再不改变原有的字符串的格式的基础上,实现对屏蔽字的处理。二、代码实现:/** * List<Character> 转字符串的方法 * @param in * @return */ public static String characterListToString(List<Character> in) { String原创 2016-08-09 10:40:46 · 4915 阅读 · 0 评论 -
java构造代码块详解
一.简介首先说一下,Java中有哪些代码块.普通代码块就是在方法后面使用"{}"括起来的代码片段,不能单独执行,必须调下其方法名才可以执行.静态代码块在类中使用static修饰,并使用"{}"括起来的代码片段,用于静态变量的初始化或对象创建前的环境初始化.同步代码块使用synchronize关键字修饰,并使用"{}"括起来的代码片段.它表示在同一时间只能有一个线程进入到该方法快中,是一种多线程保原创 2017-02-06 15:58:53 · 24289 阅读 · 7 评论 -
Java中的内部接口
一.内部接口简介内部接口也称为嵌套接口,即在一个接口内部定义另一个接口。举个例子,Entry接口定义在Map接口里面,如下代码:public interface Map { interface Entry{ int getKey(); } void clear();}二.内部接口的特点和意义三个主要的理由. 1.一种对那些在同一个地方使用的接口进行逻辑上分原创 2017-02-08 09:10:22 · 6299 阅读 · 0 评论 -
redis 实现对聊天数据的缓存机制
import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Set;import java.util.concurrent.ScheduledThreadPoolExecutor;import java.util.concu原创 2016-05-19 11:11:35 · 4914 阅读 · 0 评论 -
循环队列(贪吃蛇版)
特殊功能的循环队列特点:一.入队列不会满的情况下,会覆盖掉尾部的数据.二.快速从尾部获取指定个数个数据.代码:public class LoopQueue<T> implements Serializable { private static final long serialVersionUID = -3670496550272478781L; private int DEFAULT原创 2017-01-13 16:16:19 · 898 阅读 · 0 评论 -
应用二维数组实现抽奖功能(九宫格)
一.需求简介:使用二维数组划分物品的分区,物品出现的顺序为分区的顺序,分区内物品为权重随机. 例如:分区内有’item1:10,item2:20’表示item1出现的概率为10/30二.九宫格类(代码)import java.util.ArrayList;import java.util.Collections;import java.util.List;import java.util.Ra原创 2016-07-12 21:02:50 · 1269 阅读 · 0 评论 -
Collections.sort 排序出现的java.lang.IllegalArgumentException的异常
1.问题分析(Java 7)在Java 6中Arrays.sort()和Collections.sort()使用的是MergeSort,而在Java 7中,内部实现换成了TimSort(做了大量优化的归并排序),其对对象间比较的实现要求更加严格: Comparator的实现必须保证以下几点: 原则1. sgn(compare(x, y)) == -sgn(compare(原创 2016-07-13 11:44:02 · 3984 阅读 · 0 评论 -
常用CDK生成Java算法(大数异或)
常用于游戏中的CDK的生成.(如果需求较大,可进一步扩展位数,和一次生成的数量)private static final int mask = 23;//大数异或的标private static Map<Integer, Integer> base = new HashMap<Integer, Integer>();//参数private static Random random = new Ra原创 2017-01-13 15:55:02 · 7335 阅读 · 1 评论 -
java实现最简单socket通讯
一.服务器public class HServerApp implements Runnable { public int port; public HServerApp(int port) { this.port = port; } @Override public void run() { try { S原创 2017-01-13 16:07:27 · 17799 阅读 · 2 评论 -
Java8中的Lambda表达式
一.简述Lambda表达式本是属于JDK1.7的Lambda项目的内容.在JDK1.7开发琪琪,Sun公司由于相继在技术竞争和商业竞争中都深陷泥潭,公司的股票市值跌至仅有高峰时期的3%,已无力推动JDK1.7的研发工作按正常进行.为了尽快结束JDK1.7长期"跳票"的问题,Oracle公司收购Sun公司后不就便宣布将实行"Plan B","Plan B"把不能按时完成的Lambda项目,Jigsaw原创 2017-08-07 11:15:05 · 2198 阅读 · 0 评论