Go with java
文章平均质量分 59
Java
基础知识科普,
实用知识探索,
进阶知识挖掘,
通用知识整理。
75闪光雷
进击的菜鸟梦想:成为软件行业资深大牛
展开
-
最全java面试题及答案
从知乎上看到的,从今天开始一条一条过,过完之后在后面加链接。一、数据结构与算法基础说一下几种常见的排序算法和分别的复杂度。http://blog.csdn.net/qq_34309305/article/details/79163990用Java写一个冒泡排序算法 同上描述一下链式存储结构。http://blog.csdn.net/qq_34309305/article/...原创 2018-01-25 12:22:15 · 797 阅读 · 0 评论 -
几种常见排序算法java实现
public class sort { public static void main(String[] args) { int[] a= {10,1,35,14,9,12,11}; int c=(int)Math.floor(Math.random()*7); switch(c){ case 1: BubbleSort(a); break; case 2原创 2018-01-25 16:55:55 · 1277 阅读 · 1 评论 -
linkedlist源码解析(java)
要想实现倒排linkedlist,首先得知道它是什么。下面先来分析下他的源码:(JDK1.8) * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.package java.util;import java.util.function.Consumer;public class原创 2018-01-29 11:52:38 · 1620 阅读 · 1 评论 -
用Java写一个递归遍历目录下面的所有文件。
首先,拿到这个题目,我要找java怎样实现文件的读取。File file = new File(fileName);我们知道java通过以上代码获取文件目录File[] files = file.listFiles();上面代码获取目录下所有子文件和文件夹。以下是java.io.File.isFile()方法的声明:public boolean isFile()参数原创 2018-01-29 14:01:06 · 4949 阅读 · 0 评论 -
接口和抽象类有什么区别
原文地址:https://www.cnblogs.com/yongjiapei/p/5494894.html接口和抽象类有什么区别你选择使用接口和抽象类的依据是什么?接口和抽象类的概念不一样。接口是对动作的抽象,抽象类是对根源的抽象。抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。比如,男人,女人,这两个类(如果是类的话……),他们的抽象类是人。说明,他转载 2018-01-29 17:35:32 · 414 阅读 · 0 评论 -
Java中的异常有哪几类?
Java中的异常和处理详解简介程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常。异常发生时,是任程序自生自灭,立刻退出终止,还是输出错误给用户?或者用C语言风格:用函数返回值作为执行状态?。 Java提供了更加优秀的解决办法:异常处理机制。 异常处理机制能让程序在异常发生时,按照代码的预先设定的异常处理逻辑,针对性地处理转载 2018-01-30 10:32:30 · 25078 阅读 · 0 评论 -
java常用的集合类有哪些?如何排序?
原文地址https://www.cnblogs.com/Huanghaihui/p/6114889.html集合的结构如下图所示:集合的两个顶级接口分别为:Collection和MapCollection下有两个比较常用的接口分别是List(列表)和Set(集),其中List可以存储重复元素,元素是有序的(存取顺序一致),可以通过List脚标来获取指定元素;而S转载 2018-01-30 15:52:11 · 1083 阅读 · 0 评论 -
深入理解ArrayList与LinkedList的区别
原文地址http://yulon.iteye.com/blog/602556一、先来看看ArrayList与LinkedList 在JDK中所在的位置 从图中可以看出,ArrayList与LinkedList都是List接口的实现类,因此都实现了List的所有未实现的方法,只是实现的方式有所不同,(编程思想: 从中可以看出面向接口的好处, 对于不同的需求就转载 2018-01-30 16:48:02 · 249 阅读 · 0 评论 -
java内存溢出是怎么回事
为什么会内存溢出?因为装满了,装不下了...好吧,其实提到内存溢出,不得不再提到另一个概念。内存泄露。内存泄露什么是内存泄露,因为执行程序指令,引入数据,装载数据等等,都是需要内存空间的,内存空间也是有限的。正常的程序执行,肯定是开辟内存空间,运行程序指令(输入、输出),程序结束,释放空间。这样可以保证内存的往复利用。但是,有时候程序设计有漏洞或是不够严谨的话,导致占用的内存没有转载 2018-01-30 17:03:55 · 2172 阅读 · 0 评论 -
java里 equals和== 区别及java的内存分配
1、java中equals和==的区别 值类型是存储在内存中的堆栈(简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中。2、==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。3、equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。4、==比较的是2个对象的地址,而equals转载 2018-01-30 17:32:32 · 628 阅读 · 0 评论 -
hashCode方法的作用?(java)
原文链接:http://www.cnblogs.com/dolphin0520/p/3681042.html哈希表这个数据结构想必大多数人都不陌生,而且在很多地方都会利用到hash表来提高查找效率。在Java的Object类中有一个方法:1public native int hashCode();转载 2018-01-31 15:00:21 · 285 阅读 · 0 评论 -
NIO是什么?适用于何种场景?
原文地址:http://tutorials.jenkov.com/java-nio/nio-vs-io.html作者:Jakob Jenkov 译者:郭蕾 校对:方腾飞当学习了Java NIO和IO的API后,一个问题马上涌入脑海:我应该何时使用IO,何时使用NIO呢?在本文中,我会尽量清晰地解析Java NIO和IO的差异、它们的使用场景,以及它们如何影响您的代转载 2018-02-01 09:34:05 · 8521 阅读 · 3 评论 -
JVM内存结构,为什么需要GC?
原文地址:http://blog.csdn.net/tonytfjing/article/details/44278233文章主要分为以下四个部分JVM结构、内存分配、垃圾回收算法、垃圾收集器。下面我们一一来看。一、JVM结构根据《java虚拟机规范》规定,JVM的基本结构一般如下图所示:从左图可知,JVM主要包括四个部分:1转载 2018-02-01 12:08:43 · 2513 阅读 · 2 评论 -
NIO模型,select/epoll的区别,多路复用的原理
原文地址:https://www.cnblogs.com/Anker/p/3265058.htmlselect、poll、epoll之间的区别总结[整理] select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epo转载 2018-02-02 09:31:59 · 5921 阅读 · 1 评论 -
创建一个类的实例都有哪些办法?
package web.common;public class Counter2 { public static void main(String[] args) throws CloneNotSupportedException, InstantiationException, IllegalAccessException { people a= new people(); Ob原创 2018-02-02 11:10:38 · 2411 阅读 · 0 评论 -
final/finally/finalize的区别?
原文地址:https://www.cnblogs.com/mengyan/archive/2012/08/21/2649473.html一、性质不同(1)final为关键字;(2)finalize()为方法;(3)finally为为区块标志,用于try语句中;二、作用(1)final为用于标识常量的关键字,final标识的关键字存储在常量池中(在这里转载 2018-02-02 11:27:17 · 900 阅读 · 0 评论 -
Session/Cookie的区别?
原文地址:http://blog.csdn.net/duan1078774504/article/details/51912868一、Session的概念Session 是存放在服务器端的,类似于Session结构来存放用户数据,当浏览器 第一次发送请求时,服务器自动生成了一个Session和一个Session ID用来唯一标识这个Session,并将其通过响应发送到浏览器。当浏览转载 2018-02-02 11:47:10 · 512 阅读 · 0 评论 -
String/StringBuffer/StringBuilder的区别,实现?
原文地址:http://blog.csdn.net/ls5718/article/details/51899027众所周知,String是由字符组成的串,在程序中使用频率很高。Java中的String是一个类,而并非基本数据类型。 不过她却不是普通的类哦!!! 【镜头1】 String对象的创建 1、关于类对象的创建,很普通的一种方式就是利用构造器,Stri转载 2018-02-02 14:02:10 · 3186 阅读 · 0 评论 -
Servlet的生命周期?
Servlet运行原理 Servlet生命周期定义了一个Servlet如何被加载、初始化,以及它怎样接收请求、响应请求,提供服务。在讨论Servlet生命周期之前,先让我们来看一下这几个方法:1. init()方法 在Servlet的生命周期中,仅执行一次init()方法,它是在服务器装入Servlet时执行的,可以配置服务器,以在启动服务器或转载 2018-02-02 17:40:56 · 369 阅读 · 0 评论 -
Java有自己的内存回收机制,但为什么还存在内存泄露的问题呢?
原文地址:https://www.cnblogs.com/panxuejun/p/5888817.html1.既然 Java 的垃圾回收机制能够自动的回收内存,怎么还会出现内存泄漏的情况呢?这个问题,我们需要知道 GC 在什么时候回收内存对象,什么样的内存对象会被 GC 认为是“不再使用”的。Java中对内存对象的访问,使用的是引用的方式。在 Java 代码中我们维护一个内存对象的转载 2018-02-05 10:24:12 · 5192 阅读 · 0 评论 -
什么是java序列化,如何实现java序列化?(写一个实例)?
原文地址:http://blog.csdn.net/cselmu9/article/details/41908741Java 串行化技术可以使你将一个对象的状态写入一个Byte 流里,并且可以从其它地方把该Byte 流里的数据读出来,重新构造一个相同的对象。这种机制允许你将对象通过网络进行传播,并可以随时把对象持久化到数据库、文件等系统里。Java的串行化机制是RMI、EJB等技术的技术基转载 2018-02-05 10:36:30 · 4259 阅读 · 0 评论 -
String s = new String("abc");创建了几个 String Object?
原文地址:https://www.cnblogs.com/ydpvictor/archive/2012/09/09/2677260.htmlString str=new String("abc"); 紧接着这段代码之后的往往是这个问题,那就是这行代码究竟创建了几个String对象呢?相信大家对这道题并不陌生,答案也是众所周知的,2个。接下来我们就从这道题展开,一起回顾一转载 2018-02-05 10:45:50 · 545 阅读 · 0 评论 -
JVM有哪些常用启动参数可以调整,描述几个?
原文地址:http://blog.csdn.net/kthq/article/details/8618052堆内存设置原理JVM堆内存分为2块:Permanent Space 和 Heap Space。Permanent 即 持久代(Permanent Generation),主要存放的是Java类定义信息,与垃圾收集器要收集的Java对象关系不大。Heap =转载 2018-02-05 15:20:54 · 2462 阅读 · 0 评论 -
如何查看JVM的内存使用情况?
Runtime run = Runtime.getRuntime(); long max = run.maxMemory()/(1024*1024); long total = run.totalMemory()/(1024*1024); long free = run.freeMemory()/(1024*1024); long usable = max - total + fr原创 2018-02-05 15:23:45 · 1856 阅读 · 0 评论 -
如何避免死锁
原文地址:http://blog.csdn.net/jhonz/article/details/52786280什么是死锁死锁是指多个进程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进。例如,在某一个计算机系统中只有一台打印机和一台输入 设备,进程P1正占用输入设备,同时又提出使用打印机的请求,但此时打印机正被进程P2 所占用,而P2在未释放打印转载 2018-02-05 16:00:18 · 229 阅读 · 0 评论 -
Volatile关键字的作用?
原文链接:http://www.cnblogs.com/dolphin0520/p/3920373.htmlJava并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 vo转载 2018-02-05 16:08:50 · 266 阅读 · 0 评论 -
Java程序中启动一个线程是用run()还是start()?
原文地址:http://blog.csdn.net/abigbiggirl/article/details/46288637java线程中run和start方法的区别1.start()方法来启动线程,真正实现了多线程运行,这时无需等待run方法体代码执行完毕而直接继续执行下面的代码:通过调用Thread类的start()方法来启动一个线程, 这时此线程是处于就绪状态, 并没转载 2018-02-06 09:42:43 · 4498 阅读 · 0 评论 -
ConcurrentHashMap的实现原理是?
原文地址:https://www.cnblogs.com/chengxiao/p/6842045.htmlConcurrentHashMap实现原理及源码分析 ConcurrentHashMap是Java并发包中提供的一个线程安全且高效的HashMap实现(若对HashMap的实现原理还不甚了解,可参考我的另一篇文章HashMap实现原理及源码分析),ConcurrentHashMap在并发编程...转载 2018-02-08 12:08:15 · 250 阅读 · 0 评论 -
sleep和wait区别
原文地址:http://blog.csdn.net/u012050154/article/details/50903326学习时正好碰到这两个方法,就查阅相关资料,并通过程序实现,进行区别一下:1、每个对象都有一个锁来控制同步访问,Synchronized关键字可以和对象的锁交互,来实现同步方法或同步块。sleep()方法正在执行的线程主动让出CPU(然后CPU就可以去执行其他任务),在sleep...转载 2018-02-08 12:25:11 · 203 阅读 · 0 评论 -
notify和notifyAll区别
notify()和notifyAll()都是Object对象用于通知处在等待该对象的线程的方法。两者的最大区别在于:notifyAll使所有原来在该对象上等待被notify的线程统统退出wait的状态,变成等待该对象上的锁,一旦该对象被解锁,他们就会去竞争。notify则文明得多他只是选择一个wait状态线程进行通知,并使它获得该对象上的锁,但不惊动其他同样在等待被该对象notify的线程们,当第...转载 2018-02-08 12:28:50 · 3139 阅读 · 0 评论 -
线程池ThreadPoolExecutor的实现原理?
原文地址:https://www.jianshu.com/p/ade771d2c9c0线程池有多重要#####线程是一个程序员一定会涉及到的一个概念,但是线程的创建和切换都是代价比较大的。所以,我们有没有一个好的方案能做到线程的复用呢?这就涉及到一个概念——线程池。合理的使用线程池能够带来3个很明显的好处:1.降低资源消耗:通过重用已经创建的线程来降低线程创建和销毁的消耗2.提高响应速度:任务到达...转载 2018-02-08 15:44:51 · 884 阅读 · 0 评论 -
链式存储结构
链式存储结构中每个结点除了包含信息域之外,还至少包含 一个指针域。链式存储结构是用指针来体现数据元素之间的逻辑关系的。利用这种结构,各个数据元素的存储单元不再要求是连续的,即可以把逻辑上相邻的两个元素存放在物理上不相邻的存储单元中,还可以在线性编址的存储器中表示非线性关系的结点。链式存储结构的主要特点为:结点中除包含保存数据元素的自身信息的信息域外,还有表示数据元素之间的链接信息的原创 2018-01-26 10:33:49 · 1824 阅读 · 0 评论 -
二叉树的三种遍历实现(java)
原文链接http://blog.csdn.net/gfj0814/article/details/51637696二叉树的定义 二叉树(binary tree)是结点的有限集合,这个集合或者空,或者由一个根及两个互不相交的称为这个根的左子树或右子树构成. 从定义可以看出,二叉树包括:1.空树 2.只有一个根节点 3.只有左子树 4.只有右子树 5.左右子树都存在转载 2018-01-26 11:43:18 · 288 阅读 · 0 评论 -
ffmpeg解析视频的每一帧(java )
前置条件:下载opencv的jar包导入。ffmpeg1.需要的jar包如下:2.还有一个步骤:你下载的opencv中有两个dll文件。ffmpeg默认可以加载avi格式的视频,如果想要加载MP4格式的视频的话,需要在local.library.path路径下放置ffmpeg.dll文件。(如果是avi格式的视频,不需要此步骤,直接跳到3)本地工程的native labrary要配置能找到他们:...原创 2017-08-17 14:28:24 · 8499 阅读 · 35 评论 -
用java发送ajax请求实现刷票(干坏事^_^)
import java.io.IOException;import org.apache.commons.httpclient.HttpClient;import org.apache.commons.httpclient.HttpException;import org.apache.commons.httpclient.HttpStatus;import org.apache.com原创 2017-04-18 15:14:54 · 6229 阅读 · 5 评论 -
org.springframework.web.multipart.MultipartException:
在做文件上传的时候遇到这个错误:org.springframework.web.multipart.MultipartException: 接下来给出解决方法:1.是否配置了 <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolve...原创 2017-03-30 11:48:22 · 6539 阅读 · 1 评论 -
Unsupported major.minor version 51.0
学习队列的时候遇到这个错误。解决方法就是run 配置的时候,把你的JRE改成当前使用的,原因是jdk的版本不匹配造成的。原创 2017-06-28 11:06:48 · 226 阅读 · 0 评论 -
使用java实现网络爬虫
之前学习j2ee的搭建,基本完成了。接下来想学习下爬虫技术。要研究一项技术,首先得知道它的原理。那么网络爬虫的原理是什么呢?网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。 接下来我会一原创 2017-03-31 10:10:07 · 5740 阅读 · 11 评论 -
javaEE在线程序测试系统开发--持续更新
在开发程序时,我们往往需要安装开发工具,配置环境等做一些必要的准备工作,如果有一个在线的网上程序测试系统,不需要以上步骤,提交代码就直接可以测试那可多方便啊。所以博主开始试着建立一个这样的系统。基于JAVAEE的。开发工具:eclipse JDK1.6数据库:mysql框架:springMVC参考文档:https://wenku.baidu.com/view/ff56341原创 2017-04-01 11:50:33 · 1016 阅读 · 0 评论 -
java二维码生成与解析
最近想了解二维码的生成与解析,所以上网搜了搜,看到好多人都给出了源码,所以我引用了一下,本地实现了。作为一个好的方法记录下来,方便以后使用。(代码是从大神那里拿过来改造的)package test;/** * Descriptions * * @version 2017年4月5日 * @author SUNTEC * @since JDK1.6 * */import原创 2017-04-05 14:58:07 · 2032 阅读 · 0 评论