Java
文章平均质量分 78
leeon_l
一个人如何被定义取决于他如何面对那些身不由己的环境,你希望成为一个什么样的人?随波逐流还是成为自己?不管你在做什么,全力投入且保持坚强……马拉松还在继续!
展开
-
多线程编程(二)——面试题,每个线程只打印一种字符,多个线程协同顺序打印n次字符串(求大神的其他实现方案)
(这个是欢聚时刻(YY)的笔试题,在笔试的时候没有写出来,后来自己写了出来,希望大神能给出更优秀的解决方案……ps:现在面试官总有面试时问笔试编程题思路的习惯,呵呵)题目简述:输入一个字符串以及打印次数,为每一个字符创建一个线程,这个线程只负责打印一种字符,多线程循环打印字符串。效果如下:废话不多说直接上代码:public class 笔试题 { //标识原创 2016-10-04 11:49:29 · 4379 阅读 · 2 评论 -
细节决定成败,浅析一些容易被忽视的Java关键字
一、default关键字default关键字,并不是访问修饰符中的default(默认的访问权限,不加public、private、protected访问修饰符的情况自动使用,同一包下的类可以访问字段),而是Java8的新特性,default关键字是不能修饰字段的。Java8以前的认知,Java的接口中的方法只能定义不能有方法体,方法体是由实现类去实现的。但是如果当我们要去扩展接口时,所有原创 2016-08-28 22:38:38 · 1793 阅读 · 0 评论 -
关于Java基础的一些笔试题总结
针对最近腾讯、京东、网易等公司的笔试,遇到一些有关Java基础的问题,在此通过一些例子总结一下,希望能通过这几道题发散,举一反三,借此打牢基础!自己总结,望提出宝贵意见!1、null的一道小题2、关于java static与类加载机制问题3、关于Java参数传递机制问题4、Integer与Int '=='问题5、Java字段输出问题6、Java构造方法问题7、Java接口与抽象原创 2016-04-09 18:16:34 · 1743 阅读 · 1 评论 -
学Java必看:Java最常用方法总结(ImportNew年度好文)
(ImportNew年度好文,代码实例,一看即懂,分享才能进步,让更多的人看到!)实现:equals() hashCode() compareTo() clone()应用:StringBuilder/StringBuffer Random.nextInt(int) Iterator.remove() StringBuilder.reverse() Thread/Runnable try-finally输入/输出:从输入流里读取字节数据 从输入流里读取块数据 从转载 2016-04-04 18:33:58 · 7050 阅读 · 0 评论 -
腾讯2016实习生招聘后台研发面试经
4月12号收到的腾讯一面短信,4月14号一面,4月15号收到二面短信,4月16号二面,遗憾止步二面。有太多东西需要总结,在此与大家分享经验。一、笔试 一般没有内推或内推面试失败可以参加统一笔试,这里说一下,内推其实很有用的,即使是参加统一招聘,如果曾经内推面试过,都是有记录的,甚至有可能面试官通过内推人对面试人提前都有了解,对面试很有帮助(身边就有这样的情况,二面就随便拉了拉家常就过了…原创 2016-04-20 16:40:10 · 1751 阅读 · 0 评论 -
Spring IOC原理之Java反射机制
1、反射概念以及为什么要使用反射我们考虑一个场景,如果我们在程序运行时,一个对象想要检视自己所拥有的成员属性,该如何操作?那再考虑这样另一个场景,如果我们想要在运行期获得某个类Class的信息如它的属性、构造方法、一般方法 后再考虑是否创建它的对象,这种情况该怎么办呢?这就原创 2016-03-26 10:17:08 · 19426 阅读 · 3 评论 -
新版Eclipse配置Servlet始终报404 Not Found与servlet Class Not Found 异常解决方案
今天写基于Servlet与Jsp与uploadify的异步文件上传,结果控制文件上传的UploadServlet类始终无法运行,一直报404 Not Found,控制台也会抛出Servlet类ClassNotFound异常。我于是写了一个简单的不能再简单的测试Servlet,无论是用web.xml配置方式,还是注解配置方式,都不行。这样的情况在Eclipse软件安装或更新版本时是有概率发生的。原创 2016-07-25 20:32:09 · 6526 阅读 · 2 评论 -
从模板方法模式深入理解Java抽象类
阿里面试的时候被问到:接口不能实现,必须由抽象类实现的典型场景?这不就是典型的模板方法模式嘛!钩子方法和具体方法的存在使抽象类与接口具有了最主要的差异:接口主要体现的是一种规范,实现接口的类只能去实现这种规范,但用户通过与统一接口对接实现了规范与实现的分离,极大地降低了模块间的耦合度;而通过模板方法模式使用抽象类,可以继承某些具体方法,实现了规范并增加了代码的可重用性,而继承抽象方法与钩子方法使实现类可以灵活地扩展抽象模板类,接口并不能有这样的灵活扩展特性,是非常常用而有意义的一种设计模式!原创 2016-05-22 17:12:51 · 3560 阅读 · 1 评论 -
Java String字符串最常见方法速查手册+代码示例详解
1、返回指定字符(字符串)的索引位置——indexOf()int indexOf(char ch||String str) 返回指定字符(字符串)在此字符串中第一次出现处的索引 int indexOf(char ch||String str, int fromIndex) 返回在此字符串中第一次出现指定字符(字符串)处的索引,从指定的索引处开始检索 int la原创 2016-06-25 17:54:23 · 1667 阅读 · 1 评论 -
Web必知必会Cookie与Session
1、首先,Cookie与Session存在的目的是什么?答:二者都是为了保持客户端访问用户与后台服务器的交互状态,之所以为了保持这种状态,一是为了方便一些业务的实现,另一方面就是为了简化后台服务端的程序设计,提高性原创 2016-03-31 16:39:40 · 924 阅读 · 0 评论 -
再探Java抽象类与接口的设计理念差异
Java抽象类与接口都可以实现功能与实现的分离,都对多态提供了很好的支持,那么我们什么时候应该使用抽象类或接口呢?在以前的一篇文章初探Java抽象类与接口中谈到了他们语法的区别,在博客通过模板方法模式深入理解Java抽象类中写到了该如何正确使用抽象类,那么这次我就从更高的层次上——设计思想 上谈谈它们的差异!1、抽象类与接口的抽象层次是不同的 抽象类是对类抽象,接口是对行为抽象。类包含了属性与行原创 2016-06-01 15:51:02 · 2318 阅读 · 4 评论 -
JavaIO流分类详解与常用流用法实例
Java流概念:Java把所有的有序数据都抽象成流模型,简化了输入输出,理解了流模型就理解了Java IO。可以把流想象成水流,里面的水滴有序的朝某一方向流动。水滴就是数据,且代表着最小的数据流动单位,在字节流中,水滴就是一字节(byte),在字符流中,水滴就是一字符(char)。Java流的分类方法大致分为以下几种:1、按流向划分,分为输入流、输出流请注意,这里的流向是以程序的运行时内存为参照的。原创 2016-04-23 17:01:35 · 8052 阅读 · 3 评论 -
JVM类加载机制详解(一)JVM类加载过程
首先Throws(抛出)几个自己学习过程中一直疑惑的问题:1、什么是类加载?类加载的时机?2、什么是类初始化?什么时候进行类初始化?3、什么时候会为变量分配内存?4、什么时候会为变量赋默认初值?什么时候会为变量赋人为设定的初值?5、类加载器是什么?6、如何编写一个自定义的类加载器?首先,在代码编译后,就会生成JVM(Java虚拟机)能够识别的二进制字节流文件(*原创 2016-05-05 16:07:06 · 62965 阅读 · 19 评论 -
JDBC获得数据库连接时写在URL上的?useUnicode=true&characterEncoding=utf-8的意义
JDBC使用步骤;Unicode与utf-8详解;?与&作用详解与转义字符;编码格式解码格式设置作用。原创 2016-02-02 20:56:09 · 12008 阅读 · 0 评论 -
西邮ThoughtCoding实验室2016纳新笔试题(Java部分,面向大一大二,带参考答案)
刚刚经历找实习被各大公司面试各种虐,现在就因为实验室纳新当了一把出题人和面试官,人生的大起大落太吃鸡了……出的题大多是公司面试官问我的知识,但因为是面向学弟学妹,比较基础,我觉得是一份不错的学习资料……实习暂定CVTE,因为能和女友一起去……继续努力,愿大家都成为Offer收割机!原创 2016-05-28 15:36:18 · 1861 阅读 · 0 评论 -
JVM类加载机制详解(二)类加载器与双亲委派模型
在上一篇JVM类加载机制详解(一)JVM类加载过程中说到,类加载机制的第一个阶段加载做的工作有:1、通过一个类的全限定名(包名与类名)来获取定义此类的二进制字节流(Class文件)。而获取的方式,可以通过jar包、war包、网络中获取、JSP文件生成等方式。2、将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。这里只是转化了数据结构,并未合并数据。(方法区就是用来存原创 2016-05-07 21:19:35 · 27735 阅读 · 12 评论 -
Java中如何正确而优雅的终止运行中的线程
Java中终止线程的方式主要有三种:1、使用stop()方法,已被弃用。原因是:stop()是立即终止,会导致一些数据被到处理一部分就会被终止,而用户并不知道哪些数据被处理,哪些没有被处理,产生了不完整的“残疾”数据,不符合完整性,所以被废弃。So, forget it!2、使用volatile标志位看一个简单的例子:首先,实现一个Runnable接口,在其中定义volatile标原创 2016-09-09 10:42:21 · 20290 阅读 · 7 评论 -
多线程编程(一)——写一个简单的死锁
(整个九月忙着找工作,好多收获,好多遗憾,最终结局还可以接受,技术路还很远,再接再厉!面去哪儿网时,写惯了算法的我突然让写了几个多线程编程,有点蒙蔽,最近好好整理一下)死锁发生的原因:1、系统资源有限2、进程或线程推进顺序不恰当3、资源分配不当死锁发生的四个条件:1、互斥条件:一份资源每次只能被一个进程或线程使用(在Java中一般体现为,一个对象锁只能被一个线程持有)2原创 2016-10-03 19:11:50 · 9496 阅读 · 1 评论 -
Java 内存区域和GC机制最详解
Java 内存区域和GC机制目录Java垃圾回收概况Java内存区域Java对象的访问方式Java内存分配机制Java GC机制垃圾收集器Java垃圾回收概况 Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,作为Java开发者,一般不需要专门编写内存回收和垃圾清理代 码,对内存泄露和溢出转载 2016-09-22 01:35:35 · 2651 阅读 · 0 评论 -
Java核心基础之容易被忽视的细节问题——异常处理
不管是工作还是面试,细节决定成败。1、在try块中声明的变量是局部变量,在catch、finally、以及异常处理外都不能被访问。所以我们要把InputStream/OutputStream一类的变量声明在try块外,以方便在finally块中关闭连接。原创 2016-09-17 17:08:04 · 807 阅读 · 0 评论 -
Java操作MongoDB增删改查工具Demo
——因为实习工作需要,在学MongoDB,参考了公司的一个MongDB服务类,写了一个整合的Demo,涉及到的大部分的增删改查操作,而且还算规范,给大家参考!源代码:(完整项目文件下载链接:点击打开链接)使用说明:一、MongoDB数据库参数配置1、推荐使用mongodb.cfg.properties配置,则在构造MongoDBService对象的时候只需调用无参构造方法即可自动完成配原创 2016-06-21 21:43:21 · 14488 阅读 · 6 评论 -
函数回调机制、异步函数回调机制图例详解
无论是JS的函数回调还是Java回调机制,它们思想都是类似的,简单来说就是,如下图所示: 在层次一中的方法一(函数)调用层次二中的方法,而这个被调用的方法又会调用层次一中的方法,这个最后被调用的方法二就是回调方法。方法三调用方法二就是回调的过程。在Java中,这个“层次”可以理解为类,是两个类互相调用对方的方法;也可以理解为应用原创 2016-07-29 20:10:49 · 20693 阅读 · 8 评论 -
Java定时框架Quartz实例详解与定时任务的Mongodb、Mysql持久化实现(三)Quartz持久化
就像我在上一篇中说的,把调度器信息存储在内存中非常的快也易于配置。但当调度器进程一旦被终止,所有的 Job 和 Trigger 的状态就丢失了。所以我们就需要把调度器信息持久化到数据库,在服务器重启时就可以自动启动终止的任务。Quartz不可能没有考虑到这个问题,可以通过引入Jar包与配置实现,并支持多种数据库版本。一、持久化到MongoDB1、引入Jar依赖好吧,我承认,这竟然是我做原创 2016-08-12 23:18:29 · 5718 阅读 · 1 评论 -
Java反射机制实例详解
一、前言类其实也是一种对象,是java.lang.Class类的实例。编译阶段类信息会被编译成.class文件,在类加载阶段,类加载器把.class文件读入JVM内存,生成java.lang.Class对象(这时已经可以通过Class对象查看类信息了),再经过类的连接(验证、准备、解析)与类的初始化阶段后即可使用类对象。我们通常使用的new关键字与反射创建实例时都会触发类初始化。(类的加载原创 2016-08-25 19:33:08 · 2029 阅读 · 0 评论 -
关于JVM一个容易被忽略的小问题
一个例子:public class A{ public static int a = 6;}然后两次运行程序:第一次:public class Test1{ public static void main(String[] args){ A a1 = new A(); a1.a ++; System.out.println(a1.a);原创 2016-08-25 10:22:22 · 702 阅读 · 0 评论 -
Java定时框架Quartz实例详解与定时任务的Mongodb、Mysql持久化实现(二)Quartz配置文件
Quartz核心配置文件quartz.properties常见配置详解(配置在classpath中或在web.xml中指定,示例附在最后)一、调度器属性配置1、instanceName属性,调度器实例名,可以设定任意字符串,QuartzSheduler也是不设定的默认值,它通常应用于Quartz集群环境,以区别不同的调度器。2、instanceId属性,调度器实例ID,和insta原创 2016-08-12 23:18:03 · 2487 阅读 · 1 评论 -
Java定时框架Quartz实例详解与定时任务的Mongodb、Mysql持久化实现(一)Quartz组件
一、Quartz概述Quartz是一个完全由Java编写的开源作业调度框架,为在Java应用程序中进行作业调度提供了简单却强大的机制。Quartz允许开发人员根据一定的时间间隔来调度作业。我学一样东西,从来都是从实践出发,边用边学,用起来自然就学会了。二、使用Quartz1、Quartz Jar我推荐大家使用Maven来加入Jar依赖,方便而且可以对依赖有效地管理。原创 2016-08-12 23:17:36 · 4867 阅读 · 0 评论 -
Java并发编程:CountDownLatch、CyclicBarrier和Semaphore
Java并发编程:CountDownLatch、CyclicBarrier和Semaphore(转载自海子的博客) 在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我们就来学习一下这三个辅助类的用法。 以下是本文目录大纲: 一.CountDownLatch用法转载 2016-09-13 15:12:25 · 842 阅读 · 0 评论 -
《Java虚拟机》必知必会——十四个问题总结(内存模型+GC)
一、Java概述1、Java相较于PHP、C#、Ruby等一样很优秀的编程语言的优势是什么?(1)体系结构中立,跨平台性能优越。Java程序依赖于JVM运行,javac编译器编译Java程序为平台通用的字节码文件(.class),再由JVM与不同操作系统匹配,装载字节码并解释(也有可能是编译,会在第三个问题中说到)为机器指令执行。(2)安全性优越。通过JVM与宿主环境隔离,且J原创 2016-08-30 12:11:47 · 3922 阅读 · 0 评论 -
Java多线程必须掌握的十个问题
在此列举的只是Java多线程最基础的知识,也是面试官最常问到的,先打牢基础,再去探讨底层原理或者高级用法,除了这十个问题,在此再推荐一些其他的资料:JVM底层又是如何实现synchronized的:http://www.open-open.com/lib/view/open1352431526366.htmlJava线程池详解:http://blog.csdn.net/zhangliangzi/article/details/52389766Java线程池深度解析:http://www.cnblogs原创 2016-09-09 18:19:29 · 13885 阅读 · 1 评论 -
Java中断interrupt详解
interrupt简述interrupt() 方法只是改变中断状态而已,它不会中断一个正在运行的线程。这一方法实际完成的是,给受阻塞的线程发出一个中断信号,这样受阻线程就得以退出阻塞的状态。 更确切的说,如果线程被Object.wait, Thread.join和Thread.sleep三种方法之一阻塞,此时调用该线程的interrupt()方法,那么该线程将抛出一个 Interrupte转载 2016-09-09 11:19:09 · 15136 阅读 · 1 评论 -
Java并发核心基础——线程池使用及底层实现机制详解
Java线程池概述:从使用入手:java.util.concurrent.Executosr是线程池的静态工厂,我们通常使用它方便地生产各种类型的线程池,主要的方法有三种:1、newSingleThreadExecutor()——创建一个单线程的线程池2、newFixedThreadPool(int n)——创建一个固定大小的线程池3、newCachedThreadPo原创 2016-08-31 23:03:32 · 13048 阅读 · 2 评论 -
最精简的Java注解教程
Java注解能够提供代码的相关信息,同时对于所注解的代码结构又没有直接影响。在这篇教程中,我们将学习Java注解,如何编写自定义注解,注解的使用,以及如何使用反射解析注解。注解是Java 1.5引入的,目前已被广泛应用于各种Java框架,如Hibernate,Jersey,Spring。注解相当于是一种嵌入在程序中的元数据,可以使用注解解析工具或编译器对其进行解析,也可以指定注解在编译期或转载 2016-05-02 17:05:08 · 726 阅读 · 0 评论 -
Java必知必会:异常机制详解
一、Java异常概述 在Java中,所有的事件都能由类描述,Java中的异常就是由java.lang包下的异常类描述的。1、Throwable(可抛出):异常类的最终父类,它有两个子类,Error与Exception。 Throwable中常用方法有: getCause():返回抛出异常的原因。如果 cause 不存在或未知,则返回 null。 getMeage():返回异常的消息信息。原创 2016-05-01 17:52:05 · 9986 阅读 · 1 评论 -
Java关键字之final详解
在我们编写Java程序时总会根据需求将变量、方法、类设置成static(静态)或final(最终),熟练掌握final用法是必须的,现在我们就来详细了解final关键字!一、final概述概念:由字面可以了解,final有最终态,无法改变的意思。使用目的:为了阻止改变与提高效率。高效原因:Java内嵌机制,final方法会在编译的过程中利用内嵌机制进行inline优化。inli原创 2016-01-29 10:18:44 · 2187 阅读 · 1 评论 -
JavaWeb会遇到的GBK、UTF-8、Unicode编码方式知识小结
GBK编码:1、是中国国家标准GB2312扩展后的编码方式(汉语拼音guo biao kuo,简称GBK),包含全部中文字符,是为了汉字字符而形成的,在国外IE上不支持,会出现乱码。2、GBK编码一个中文字符占两个字节。3、GBK编码用ASCII码(一个字符一字节)表示英文字符;但它也可用两字节表示,用首位区分,首位为1,表示中文字符,用GBK解码;首位为0,表示英文字符,用ASCII原创 2016-01-27 17:40:08 · 1304 阅读 · 0 评论 -
Java关键字——super、this
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://zhangjunhd.blog.51cto.com/113473/20531总结关键字this与super用法。author: ZJ 07-3-12Blog: [url]http://zhangjunhd.blog.51cto.com/[/url]1.什么是su转载 2016-01-26 23:07:41 · 486 阅读 · 0 评论 -
Java运用JSON实现后台与前端分工合作(代码实例)
一、前言 最近在写我们实验室网站内部交流平台,后台架构用的Spring + SpringMVC + Mabatis(数据库框架)整合框架,作为后台人员,与数据库交互、处理业务逻辑已经驾轻就熟,但与前端合作就显得不是那么熟练了。举一个小例子,一个用户列表,我们从数据库取出来是一个List,但它在前端显示就是一个很炫酷的用户列表,我们后台人员是需要把数据以表格样式呈现然后让前端人员去原创 2015-12-06 20:31:26 · 11913 阅读 · 4 评论 -
两段交换代码轻松理解Java参数传递机制
Java里方法的参数传递方式只有一中——值传递,即是将实际参数复制一份传入方法中,实际参数本身不会受到任何影响,参照C语言中的函数参数传递,形参与实参(当时学的时候真的好晕);原创 2015-12-10 14:53:43 · 1479 阅读 · 0 评论 -
Java多线程、并发基础面试知识汇总
多线程和并发问题是Java技术面试中面试官比较喜欢问的问题之一。在这里,从面试的角度列出了大部分重要的问题,但是你仍然应该牢固的掌握Java多线程基础知识来对应日后碰到的问题!转载 2015-12-22 20:35:19 · 657 阅读 · 0 评论