java
文章平均质量分 74
HelloWorld_EE
这个作者很懒,什么都没留下…
展开
-
设置定时任务(Timer类的介绍)
设置定时任务(Timer类的介绍)在我们的许多项目中,我们都需要用到定时任务,因此想借此博文来对定时任务进行一个介绍。设置定时任务步骤如下: 先new一个Timer对象 Timer timer = new Timer() ; 然后调用它的schedule方法,例如:timer.schedule(new Task(), 5 * 1000,5*1000);原创 2015-06-24 16:51:12 · 1618 阅读 · 0 评论 -
《Java小游戏实现》:贪吃蛇
《Java小游戏实现》:贪吃蛇在完成坦克大战之后,就想到了贪吃蛇这个小游戏,因为这两个游戏太像了,因此,就决定把这个游戏来尝试的写下。接下来的几篇博文就是来记录这个小游戏实现的全过程。突然,想起,一年前(时间是2015年7月3日),我刚学习Java的时候看过别人写的这个游戏源代码,还专门写了篇博文,连接如下:http://blog.csdn.net/u010412719/article/detail原创 2016-07-01 21:35:40 · 94611 阅读 · 95 评论 -
Java中ListIterator和Iterator的区别以及ListIterator的应用
Java中ListIterator和Iterator的区别以及ListIterator的应用Iterator和ListIterator主要区别有:一、ListIterator有add()方法,可以向List中添加对象,而Iterator不能。二、ListIterator和Iterator都有hasNext()和next()方法,可以实现顺序向后遍历。但是ListIterator有hasPreviou原创 2016-07-05 20:21:09 · 2455 阅读 · 0 评论 -
Eclipse调试进入JDK源码
Eclipse调试进入JDK源码都说HashMap在多线程并发情况下容易导致死循环,今天在eclipse中写一个多线程并发的demo,准备跟踪下HashMap的源码,具体来看下造成死循环的全过程。于是就遇到了这个问题:在Eclipse中不能跟踪JDK源码。这是因为还需要配置才可以。参考了网上这篇博文:http://blog.csdn.net/xuefeng0707/article/details/8原创 2016-07-27 16:37:41 · 2092 阅读 · 2 评论 -
《Java小游戏实现》:坦克大战(续一)
《Java小游戏实现》:坦克大战(续一)上篇博文(http://blog.csdn.net/u010412719/article/details/51712663)只介绍到了能够控制一个坦克在4个方向上移动就结束了,今天就在此基础上继续完成一个一个的小功能。完成的功能:根据键盘的按键控制一个坦克在8个方向上移动要完成这个功能,我们要做一下几个事情1、记录下键盘的按键情况,即要重写键盘按下和抬起的监听原创 2016-06-20 21:44:39 · 7730 阅读 · 6 评论 -
《Java小游戏实现》:坦克大战(续2)
《Java小游戏实现》:坦克大战(续2)相关博文:《Java小游戏实现》:坦克大战http://blog.csdn.net/u010412719/article/details/51712663《Java小游戏实现》:坦克大战(续一):http://blog.csdn.net/u010412719/article/details/51723570博文《Java小游戏实现》:坦克大战(续1)中已经实现原创 2016-06-21 19:27:51 · 5807 阅读 · 0 评论 -
《Java小游戏实现》:坦克大战(续四)
《Java小游戏实现》:坦克大战(续四)相关博文:《Java小游戏实现》:坦克大战http://blog.csdn.net/u010412719/article/details/51712663《Java小游戏实现》:坦克大战(续一):http://blog.csdn.net/u010412719/article/details/51723570《Java小游戏实现》:坦克大战(续二):http:/原创 2016-06-23 10:05:37 · 3751 阅读 · 2 评论 -
《Java中AtomicIntegerFieldUpdater的应用》
《Java中AtomicIntegerFieldUpdater的应用》在J.U.C下的atomic包下有一些用于并发进行原子更新的类。例如:1、AtomicInteger/AtomicLong/AtomicBoolean/AtomicReference是关于对变量的原子更新,2、AtomicIntegerArray/AtomicLongArray/AtomicReferenceArray是关于对数组原创 2016-07-29 21:47:43 · 4617 阅读 · 0 评论 -
《Java中Lock和synchronized的比较和应用》
《Java中Lock和synchronized的比较和应用》尽管synchronized在语法上已经足够简单了,在JDK 5之前只能借助此实现,但是由于是独占锁,性能却不高,因此JDK 5以后就开始借助于JNI来完成更高级的锁实现。JDK 5中的锁是接口java.util.concurrent.locks.Lock。另外java.util.concurrent.locks.ReadWriteLock原创 2016-07-30 20:07:46 · 4290 阅读 · 1 评论 -
《Java反射的应用》
《Java反射的应用》最近在研究Java并发相关的类库,看到了AtomicIntegerFieldUpdater,这个类就是利用反射来完成原子更新字段的值。由于自己对反射相关的操作都忘记了,今天刚好借此机会就看了下API文档温习了一下。也写了一个小例子。例子中基本上涵盖了我们利用反射来获取类的属性、方法、构造函数等应用。例子完成的功能:首先有一个Student类,然后我们利用反射机制获取类相关的属性原创 2016-07-29 21:40:08 · 901 阅读 · 0 评论 -
Integer对象和 ==、equals分析
《Java》:Integer对象和 ==、equals分析今天看到Integer的一个小知识点,比较有意思。我们都知道 Integer i = 3;等价于Integer i = Integer.valueOf(3);问题:下面这段代码应该输出什么呢? Integer i =3; Integer j =3; System.out.println(i==j);答案是:原创 2016-07-08 20:44:24 · 1047 阅读 · 0 评论 -
Java中接口中的方法定义规则
Java接口中的方法定义规则最近在做某个公司校招的笔试的时候,遇到了如下一个题:题目如下:(多选题)请选择以下接口定义正确的方法()A:public static void main (String[] args);B:private void test();C:public void test2();D:static void test3(){};正确答案为:C D。原因为:A没有提供默认实现,B原创 2016-09-14 11:24:52 · 33768 阅读 · 7 评论 -
一些好的博客收集(持续更新中)
博客收集(持续更新中)这篇博文主要用于记住我觉得比较好的博客,以至于我可以在任何电脑上工作的时候都可以找到他们的博客。原创 2015-06-22 11:15:20 · 1501 阅读 · 0 评论 -
《Java小游戏实现》:坦克大战(续三)
《Java小游戏实现》:坦克大战(续三)相关博文:《Java小游戏实现》:坦克大战http://blog.csdn.net/u010412719/article/details/51712663《Java小游戏实现》:坦克大战(续一):http://blog.csdn.net/u010412719/article/details/51723570《Java小游戏实现》:坦克大战(续二):http:/原创 2016-06-22 16:03:40 · 5875 阅读 · 3 评论 -
《Java项目实践》:简单聊天程序
《Java项目实践》:简单聊天程序由于这个简单程序,还是涉及到很多的知识点,下面我们就一点一点的来完成。我们熟悉的QQ聊天,就有一个界面,是吧,我们自己做一个简单的聊天程序,因此我们也就需要为Client写一个界面。因此,这就是我们第一步需要完成的任务。第一步:为Client端写一个界面完成一个界面有两种方法,一种是使用Frame对象来完成,另外一种是继承JFrame类来完成.本项目使用第二种。第二原创 2016-06-18 20:48:25 · 8779 阅读 · 0 评论 -
#Java中的Pattern和Matcher类的详解
Java中的Pattern和Matcher类的详解在工作中又一次的接触到了Pattern和Matcher,其中涉及到Matcher类中的一些方法,例如:group(),groupCount()等,因此又找了相关资料看了下,觉得下面两篇博文讲解的挺好的,因此记录一下。http://tutorials.jenkov.com/java-regex/matcher.htmlhttp://tutorials.原创 2017-07-27 21:56:58 · 806 阅读 · 0 评论 -
Loop doesn't see changed value without a print statement
今天逛V2的时候,看到别人发的一个帖子,问到了这样一个问题,然后在stackoverflow上看到了一个非常精彩的回答,特记录一下。问题和答案在这里:https://stackoverflow.com/questions/25425130/loop-doesnt-see-changed-value-without-a-print-statement原创 2017-11-02 21:34:34 · 477 阅读 · 0 评论 -
Java中判断两个Date是否是同一天
Java中判断两个Date是否是同一天在Java中如何判断两个Data是否是同一天呢?你可以选择自己借助于Calendar来实现(如何实现,可以参考下面将分析的commons-lang包的isSameDay方法),当然,你也可以选择借助于commons-lang3这个jar中的DateUtils.isSameDay方法来实现,下面这里看一下这个类的内部实现。commons-lang3的版本为:3.3原创 2017-11-04 12:40:45 · 40140 阅读 · 1 评论 -
《Java小游戏实现》:坦克大战
《Java小游戏实现》:坦克大战前面写了一个简单的聊天小程序,今天开始就写一个坦克大战的游戏,算是对Java相关小知识点的一个应用。这个游戏的完成,我们也是分步完成,逐步累加,一个一个小功能的添加,最后直至完成整个游戏的开发。第一步:写一个界面 public class TankClient extends JFrame{ public static void main(Stri原创 2016-06-19 15:58:46 · 42478 阅读 · 5 评论 -
《Java小游戏实现》:坦克大战(最后一点附加功能的实现)
《Java小游戏实现》:坦克大战(最后一点附加功能的实现)相关博文《Java小游戏实现》:坦克大战http://blog.csdn.net/u010412719/article/details/51712663《Java小游戏实现》:坦克大战(续一):http://blog.csdn.net/u010412719/article/details/51723570《Java小游戏实现》:坦克大战(续二原创 2016-06-23 22:31:32 · 5749 阅读 · 2 评论 -
java和andorid开发所需的环境的搭建
为更好的了解java jdk的安装以环境的配置的要点注意如下: 第一:下载java jdk安装包:直接在百度中输入:java jdk即可 第二:一直点“下一步”即可安装成功 第三:环境的配置,原创 2015-06-24 18:49:29 · 792 阅读 · 0 评论 -
Java中Volatile的作用
Java中Volatile的作用看了几篇博客,发现没搞懂,但是简单来说,就是在我们的多线程开发中,我们用Volatile关键字来限定某个变量或者属性时,线程在每次使用变量的时候,都会读取变量修改后的最新的值,即Volatile关键字保证了变量的可见性。但是,并不能保证变量的原子性,这就导致了volatile关键字的误用在并发的时候结果与我们的预期会是不一样的原创 2015-06-29 15:33:11 · 1018 阅读 · 0 评论 -
多个客户端与一个服务器端通信的问题
多个客户端与一个服务器端通信的问题上篇博文主要是讲的关于客户端与服务器端的通信问题,在上篇博文中当我们只有一个客户端访问我们的服务器时是可以正常运行的,但是当我们有多个客户端访问我们的服务器时,我们的代码就不能正常工作了。而在现实中,我们是很少有一个服务器只供一个客户端访问的,此篇博文就是来解决多个客户端访问我们服务器端的问题。 解决方法: 用一个多线程就可以解决原创 2015-06-12 00:19:58 · 5959 阅读 · 0 评论 -
客户端和服务器端的通信(Socket编程)
Socket编程此篇博文的来源 自己一直以为将网络编程这块的知识掌握的还可以了,今天突然有涉及客户端和服务器端的通信的这一块知识的应用,发现自己还不是那么的熟悉这一块,鼓捣了半天,因此就想通过此篇博文来记录一下,也希望能够给更对的朋友们一点帮助原创 2015-06-11 23:40:44 · 10116 阅读 · 1 评论 -
贪吃蛇小游戏java实现代码分析
贪吃蛇小游戏java实现代码分析贪吃蛇的小游戏,网上的代码比较多,今天周五,在教研室没啥事做,在电脑中发现了一个贪吃蛇的小游戏,于是就看了下实现的源码,发现别人写的代码确实挺好的,自己也是边加注释边进行理解的去看别人实现的游戏源码,发现还是挺有意思的。自己花了一个下午的时间看了源码,也加了一点小小的功能,于是,不写篇博客觉得对不起自己也,哈哈哈。此游戏代码的思路非常的清晰,也相当好理解,没有太多难的原创 2015-07-03 22:07:22 · 20825 阅读 · 13 评论 -
实现多线程的两种方法:继承Thread类或实现Runnable接口
实现多线程的两种方法:继承Thread类或实现Runnable接口Java中实现多线程有两种方法:继承Thread类和实现Runnable接口,在程序开发中只要是多线程,我们一般都是实现Runnable接口,原因归结为一点:实现接口比继承类要好。多线程的第一种实现方式:继承Thread类步骤如下 创建一个继承Thread的类(假定为A),并重写Thread的run方法 构造一个A类对象原创 2015-07-22 21:27:02 · 5249 阅读 · 0 评论 -
java中基本类型与装箱基本类型“==”比较出现的几种情况
java中基本类型与装箱基本类型“==”比较出现的几种情况java有一个类型系统有两部分组成,包含基本类型(primitive),例如:int、double等,还有引用类型(reference type),例如:String、List。每个基本类型都有一个对应的引用类型,称为装箱基本类型(boxed promitive)。装箱基本类型中对应于int、double的是Integer、Double。原创 2015-07-24 17:40:44 · 2640 阅读 · 0 评论 -
Java中static{}块、{}块和普通代码块的研究
普通代码块普通代码块就是在方法或者是在语句中用{}定义的代码块 普通代码块和方法中其它语句的执行顺序与其出现的顺序一致:即先出现先执行。package com.wrh.codeblock;public class CommonCodeBlock { public static void main(String[] args) { //普通代码块的研究 {原创 2015-10-19 21:16:55 · 803 阅读 · 0 评论 -
Java中子类是否可以继承父类的static变量和方法而呈现多态特性
静态方法通常,在一个类中定义一个方法为static,那就是说,无需本类的对象即可调用此方法,关于static方法,声明为static的方法有以下几条限制: 它们仅能调用其他的static 方法。 它们只能访问static数据。 它们不能以任何方式引用this 或super。无论是static修饰的变量,还是static修饰的方法,我们都知道他们是属于类本身的,不是属于某一个对象的,当声明一个原创 2015-10-19 19:45:29 · 19396 阅读 · 10 评论 -
Java中深拷贝和浅拷贝的研究
Java中深拷贝和浅拷贝的研究这篇博文主要来研究下深拷贝和浅拷贝吧原创 2015-10-24 22:00:38 · 1628 阅读 · 0 评论 -
Java中的线程中断:interrupt()、interrupted()和isInterrupted
使用interrupt()中断线程当一个线程运行时,另一个线程可以调用对应的Thread对象的interrupt()方法来中断它,该方法只是在目标线程中设置一个标志,表示它已经被中断,并立即返回。这里需要注意的是,如果只是单纯的调用interrupt()方法,线程并没有实际被中断,会继续往下执行。下面一段代码演示了休眠线程的中断:package com.wrh.threadInterrupt;pub原创 2015-10-25 20:51:04 · 2980 阅读 · 0 评论 -
内部类和闭包
内部类和闭包今天在某java群中看到了这样一个内部类问题,代码如下: InnerDemo01中有一个内部类Bar,InnerDemo01中的method方法中有一个继承Bar的局部子类InnerClass。InnerClass类中调用了method方法中定义的一个局部变量。而我们一般都知道,方法中的局部变量会在执行结束后就会被释放,但是内部类访问此变量就形成了闭包。package com.wrh.原创 2015-10-27 20:02:16 · 4488 阅读 · 0 评论 -
线程挂起和恢复的几种方法
线程挂起和恢复方法(1):sleep()方法此种方法比较简单,哪个线程需要挂起就在哪个线程中直接调用:Thread.sleep(挂起的毫秒数);线程挂起和恢复方式(2):join()方法在实现多线程的两种方法这篇博文中值说明了Thread类中join()的作用如下: join():用线程对象调用,如果在一个线程A中调用另一个线程B的join方法,线程A将会等待线程B执行完毕后再执行。光看这句话原创 2015-10-27 21:47:59 · 17046 阅读 · 0 评论 -
守护线程和线程组
守护线程Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程) 用户线程即运行在前台的线程,而守护线程是运行在后台的线程。 守护线程作用是:为其他前台线程的运行提供便利服务,而且仅在普通、非守护线程仍然运行时才需要,比如垃圾回收线程就是一个守护线程。当VM检测仅剩一个守护线程,而用户线程都已经退出运行时,VM就会退出,因为没有了用户线程被守护这,也就没有继续原创 2015-10-27 22:21:13 · 1002 阅读 · 0 评论 -
从字节码的角度来看try-catch-finally和return的执行顺序
从字节码的角度来看try-catch-finally和return的执行顺序全篇以一个例子来说明:先看如下代码:public class ExceptionTest { public void testException(){ try{ //调用一个抛异常的函数 inside_try(); } c原创 2015-11-25 22:47:40 · 2594 阅读 · 1 评论 -
JUnit的注解、套件和参数化设置的介绍
JUnit4中的注解、测试套件和参数化设置注解上面博文已经介绍了如下的注解:1、@BeforeClass,用此注解修饰的方法将在所有方法运行前被执行,是一个static方法,只执行一次。2、@AfterClass,用此注解修饰的方法将在所有方法运行后被执行,也是一个static方法,只执行一次。3、@Before,用此注解修饰的方法在每个test方法运行前没执行4、@Test,表明此方法为测试方法。原创 2016-04-13 20:31:15 · 2412 阅读 · 0 评论 -
Junit4的使用和执行流程
Junit的使用和执行流程昨天晚上躺床上,在慕课网上看了一个关于讲解《Junit4》的视频教程。发现讲解的还不错,以前在写JAVA的过程中,自己也没有用到过Junit,而是通过类似的System.out.println….这样的语句来进行测试和排除bug。确实这样挺不方便的,在华为的2016年精英挑战赛中,体会的就比较深刻。因此提交的版本代码是不允许有其它任何多余的输出的,因此,在我们提交代码版本时原创 2016-04-13 10:19:21 · 2871 阅读 · 0 评论 -
Semaphore原理浅析和相关面试题分析
本文首发在个人公众号:HelloWorldEE,欢迎关注。本篇文章的来源是这样,有一天,我一同学面试某公司回来,和我分享其被问的相关面试题。其中就有一道关于Semaphore的面试题,个人觉得比较经典,分享出来供大家参考。具体同学和面试官的对话还原出来是这样。面试官:现在有一个方法task,希望只能被10个线程调用,利用Java相关类,应该如何来实现?同学:使用Java中的Semaphor...原创 2019-07-07 14:04:05 · 1023 阅读 · 2 评论