![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 59
75闪光雷
进击的菜鸟梦想:成为软件行业资深大牛
展开
-
深入理解ArrayList与LinkedList的区别
原文地址http://yulon.iteye.com/blog/602556一、先来看看ArrayList与LinkedList 在JDK中所在的位置 从图中可以看出,ArrayList与LinkedList都是List接口的实现类,因此都实现了List的所有未实现的方法,只是实现的方式有所不同,(编程思想: 从中可以看出面向接口的好处, 对于不同的需求就转载 2018-01-30 16:48:02 · 217 阅读 · 0 评论 -
java常用的集合类有哪些?如何排序?
原文地址https://www.cnblogs.com/Huanghaihui/p/6114889.html集合的结构如下图所示:集合的两个顶级接口分别为:Collection和MapCollection下有两个比较常用的接口分别是List(列表)和Set(集),其中List可以存储重复元素,元素是有序的(存取顺序一致),可以通过List脚标来获取指定元素;而S转载 2018-01-30 15:52:11 · 1030 阅读 · 0 评论 -
Java中的异常有哪几类?
Java中的异常和处理详解简介程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常。异常发生时,是任程序自生自灭,立刻退出终止,还是输出错误给用户?或者用C语言风格:用函数返回值作为执行状态?。 Java提供了更加优秀的解决办法:异常处理机制。 异常处理机制能让程序在异常发生时,按照代码的预先设定的异常处理逻辑,针对性地处理转载 2018-01-30 10:32:30 · 24952 阅读 · 0 评论 -
接口和抽象类有什么区别
原文地址:https://www.cnblogs.com/yongjiapei/p/5494894.html接口和抽象类有什么区别你选择使用接口和抽象类的依据是什么?接口和抽象类的概念不一样。接口是对动作的抽象,抽象类是对根源的抽象。抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。比如,男人,女人,这两个类(如果是类的话……),他们的抽象类是人。说明,他转载 2018-01-29 17:35:32 · 367 阅读 · 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 · 4439 阅读 · 0 评论 -
Volatile关键字的作用?
原文链接:http://www.cnblogs.com/dolphin0520/p/3920373.htmlJava并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 vo转载 2018-02-05 16:08:50 · 234 阅读 · 0 评论 -
如何避免死锁
原文地址:http://blog.csdn.net/jhonz/article/details/52786280什么是死锁死锁是指多个进程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进。例如,在某一个计算机系统中只有一台打印机和一台输入 设备,进程P1正占用输入设备,同时又提出使用打印机的请求,但此时打印机正被进程P2 所占用,而P2在未释放打印转载 2018-02-05 16:00:18 · 181 阅读 · 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 · 1826 阅读 · 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 · 2404 阅读 · 0 评论 -
用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 · 4894 阅读 · 0 评论 -
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 · 1555 阅读 · 1 评论 -
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 · 511 阅读 · 0 评论 -
ConcurrentHashMap的实现原理是?
原文地址:https://www.cnblogs.com/chengxiao/p/6842045.htmlConcurrentHashMap实现原理及源码分析 ConcurrentHashMap是Java并发包中提供的一个线程安全且高效的HashMap实现(若对HashMap的实现原理还不甚了解,可参考我的另一篇文章HashMap实现原理及源码分析),ConcurrentHashMap在并发编程...转载 2018-02-08 12:08:15 · 205 阅读 · 0 评论 -
sleep和wait区别
原文地址:http://blog.csdn.net/u012050154/article/details/50903326学习时正好碰到这两个方法,就查阅相关资料,并通过程序实现,进行区别一下:1、每个对象都有一个锁来控制同步访问,Synchronized关键字可以和对象的锁交互,来实现同步方法或同步块。sleep()方法正在执行的线程主动让出CPU(然后CPU就可以去执行其他任务),在sleep...转载 2018-02-08 12:25:11 · 155 阅读 · 0 评论 -
CMS垃圾回收过程
1.总体介绍:CMS(Concurrent Mark-Sweep)是以牺牲吞吐量为代价来获得最短回收停顿时间的垃圾回收器。对于要求服务器响应速度的应用上,这种垃圾回收器非常适合。在启动JVM参数加上-XX:+UseConcMarkSweepGC ,这个参数表示对于老年代的回收采用CMS。CMS采用的基础算法是:标记—清除。2.CMS过程:初始标记(STW initial mark) ...转载 2018-10-15 12:02:06 · 2481 阅读 · 0 评论 -
java 随机生成4位验证码
String str="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; String uuid=new String(); for(int i=0;i<4;i++) { char ch=str.charAt(new Random().nextInt(str.length())); ...原创 2018-08-15 13:38:49 · 7133 阅读 · 1 评论 -
idea建立一个spring boot maven的 web工程
步骤一:新建maven工程、项目路径图如下:步骤二:配置pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSch...原创 2018-08-07 14:40:26 · 989 阅读 · 1 评论 -
多线程编程-牛刀小试
public class ticketThread implements Runnable{ public static Integer ticket=10; private String silename; public static String lockString="lock"; ticketThread(String name){ silename=name; } ...原创 2018-04-16 15:51:52 · 207 阅读 · 0 评论 -
面向接口编程
定义一个接口package test.pack;public interface People{ public String getName(); public String getColor(); public String getHigh();}定义一个类实现接口public class WhitePeople implements People { private Stri...原创 2018-04-10 12:03:52 · 213 阅读 · 0 评论 -
servlet学习
1.eclipse中建立一个带有web.xml的动态工程。2.建立一个servlet类 要继承HttpServletpackage web.study;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.se...原创 2018-04-10 10:52:52 · 168 阅读 · 0 评论 -
java框架 问题体系
知乎上刷到的新问题体系,有空开始弄。第一站:(深圳)多个线程同时读写,读线程的数量远远⼤于写线程,你认为应该如何解决 并发的问题?你会选择加什么样的锁?JAVA的AQS是否了解,它是⼲嘛的?除了synchronized关键字之外,你是怎么来保障线程安全的?什么时候需要加volatile关键字?它能保证线程安全吗?线程池内的线程如果全部忙,提交⼀个新的任务,会发⽣什么?队列全部 塞满了之后,还是忙,...原创 2018-04-08 16:32:44 · 385 阅读 · 0 评论 -
Java多线程的常见例子
原文地址:https://www.cnblogs.com/pureEve/p/6524366.html一.相关知识: Java多线程程序设计到的知识:(一)对同一个数量进行操作(二)对同一个对象进行操作(三)回调方法使用(四)线程同步,死锁问题(五)线程通信 等等 二.示例一:三个售票窗口同时出售20张票; 程序分析:1.票数要使用同一个静态值 2.为保证不会出现卖出同一个票数,要java多线程...转载 2018-03-12 11:04:57 · 270 阅读 · 0 评论 -
自旋锁、阻塞锁、可重入锁、悲观锁、乐观锁、读写锁、偏向所、轻量级锁、重量级锁、锁膨胀、对象锁和类锁
原文链接:http://blog.csdn.net/a314773862/article/details/540958191、自旋锁自旋锁可以使线程在没有取得锁的时候,不被挂起,而转去执行一个空循环,(即所谓的自旋,就是自己执行空循环),若在若干个空循环后,线程如果可以获得锁,则继续执行。若线程依然不能获得锁,才会被挂起。使用自旋锁后,线程被挂起的几率相对减少,线程执行的连贯性相对加强。因此,对于...转载 2018-03-09 16:13:05 · 210 阅读 · 0 评论 -
线程池ThreadPoolExecutor的实现原理?
原文地址:https://www.jianshu.com/p/ade771d2c9c0线程池有多重要#####线程是一个程序员一定会涉及到的一个概念,但是线程的创建和切换都是代价比较大的。所以,我们有没有一个好的方案能做到线程的复用呢?这就涉及到一个概念——线程池。合理的使用线程池能够带来3个很明显的好处:1.降低资源消耗:通过重用已经创建的线程来降低线程创建和销毁的消耗2.提高响应速度:任务到达...转载 2018-02-08 15:44:51 · 860 阅读 · 0 评论 -
最全java面试题及答案
从知乎上看到的,从今天开始一条一条过,过完之后在后面加链接。一、数据结构与算法基础说一下几种常见的排序算法和分别的复杂度。http://blog.csdn.net/qq_34309305/article/details/79163990用Java写一个冒泡排序算法 同上描述一下链式存储结构。http://blog.csdn.net/qq_34309305/article/...原创 2018-01-25 12:22:15 · 770 阅读 · 0 评论 -
notify和notifyAll区别
notify()和notifyAll()都是Object对象用于通知处在等待该对象的线程的方法。两者的最大区别在于:notifyAll使所有原来在该对象上等待被notify的线程统统退出wait的状态,变成等待该对象上的锁,一旦该对象被解锁,他们就会去竞争。notify则文明得多他只是选择一个wait状态线程进行通知,并使它获得该对象上的锁,但不惊动其他同样在等待被该对象notify的线程们,当第...转载 2018-02-08 12:28:50 · 3108 阅读 · 0 评论 -
什么是java序列化,如何实现java序列化?(写一个实例)?
原文地址:http://blog.csdn.net/cselmu9/article/details/41908741Java 串行化技术可以使你将一个对象的状态写入一个Byte 流里,并且可以从其它地方把该Byte 流里的数据读出来,重新构造一个相同的对象。这种机制允许你将对象通过网络进行传播,并可以随时把对象持久化到数据库、文件等系统里。Java的串行化机制是RMI、EJB等技术的技术基转载 2018-02-05 10:36:30 · 4212 阅读 · 0 评论 -
Java有自己的内存回收机制,但为什么还存在内存泄露的问题呢?
原文地址:https://www.cnblogs.com/panxuejun/p/5888817.html1.既然 Java 的垃圾回收机制能够自动的回收内存,怎么还会出现内存泄漏的情况呢?这个问题,我们需要知道 GC 在什么时候回收内存对象,什么样的内存对象会被 GC 认为是“不再使用”的。Java中对内存对象的访问,使用的是引用的方式。在 Java 代码中我们维护一个内存对象的转载 2018-02-05 10:24:12 · 5118 阅读 · 0 评论 -
解决Cannot change version of project facet Dynamic web module to 2.5
我们用Eclipse创建Maven结构的web项目的时候选择了Artifact Id为maven-artchetype-webapp,由于这个catalog比较老,用的servlet还是2.3的,而一般现在至少都是2.5,在Project Facets里面修改Dynamic web module为2.5的时候就会出现Cannot change version of project facet Dy转载 2017-11-30 11:56:08 · 127 阅读 · 0 评论 -
使用maven创建web项目
目前做的项目使用的是MAVEN来管理jar包,这也是我第一次接触maven,感觉非常好,再也不用一个一个去添加和下载jar包了,直接在maven配置文件中配置就可以了,maven可以帮助我们自动下载。非常方便。之前比较忙没时间整理,现在整理一下,记录下来,加深印象。当然我们使用maven也只是最基本的,很多其他功能都没有使用到,本篇仅介绍如何创建一个maven项目,不做其他。转载 2017-11-30 11:32:46 · 180 阅读 · 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 · 8484 阅读 · 35 评论 -
${pageContext.request.contextPath} JSP取得绝对路径
今天该项目的时候遇到的路径引用问题,记录一下。${pageContext.request.contextPath} JSP取得绝对路径JSPStrutsWeb浏览器 一.问题 JSP中究竟采用绝对路径还是采用相对路径随着所采用技术的越来越复杂,这个问题也变得越来越难以解决。 1)采用相对路径遇到的问题 相对路径固然比较灵活,但如果想复制页面内的代码转载 2017-08-09 11:25:19 · 195 阅读 · 0 评论 -
java,ssm框架实战
毕业以后来到公司还不到一年,因为本身是C,C++出身,进公司后进入了Java部门,所以为了加强对java的了解。博主决定从最基本的j2ee开始做起,也就是俗称的造轮子。这次我要做一个《网上图书售卖系统》可以理解为类似《当当网》的初级模型。j2eeweb服务器:tomcat浏览器:chrome数据库:MySQL开发工具:eclipse JDK1.6这里采用的是b\s模型,原创 2017-07-31 10:06:22 · 2762 阅读 · 2 评论 -
Stream语法详解
1. Stream初体验我们先来看看Java里面是怎么定义Stream的:A sequence of elements supporting sequential and parallel aggregate operations.我们来解读一下上面的那句话:Stream是元素的集合,这点让Stream看起来用些类似Iterator;可以支持顺序和并行的对原转载 2017-07-04 17:34:36 · 464 阅读 · 0 评论 -
java迭代器的一般用法-转
迭代器(Iterator) 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”对象,因为创建它的代价小。 Java中的Iterator功能比较简单,并且只能单向移动: (1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返转载 2017-06-12 10:47:43 · 282 阅读 · 0 评论 -
java泛型-转
原文地址: http://blog.csdn.net/lonelyroamer/article/details/7864531现在开始深入学习Java的泛型了,以前一直只是在集合中简单的使用泛型,根本就不明白泛型的原理和作用。泛型在java中,是一个十分重要的特性,所以要好好的研究下。一、泛型的基本概念 泛型的定义:泛型是JDK 1.5的一项新特性,它转载 2017-06-09 17:18:45 · 231 阅读 · 0 评论 -
java队列和栈的使用
package com.ipmotor.sm.db;import java.util.LinkedList;import java.util.Queue;import java.util.Stack;/** * 测试jdk中的栈和队列 * @author scott * */public class TestQueueAndStack {转载 2017-06-30 11:38:13 · 284 阅读 · 0 评论 -
java二维码生成与解析
最近想了解二维码的生成与解析,所以上网搜了搜,看到好多人都给出了源码,所以我引用了一下,本地实现了。作为一个好的方法记录下来,方便以后使用。(代码是从大神那里拿过来改造的)package test;/** * Descriptions * * @version 2017年4月5日 * @author SUNTEC * @since JDK1.6 * */import原创 2017-04-05 14:58:07 · 1937 阅读 · 0 评论 -
java基础static,final的作用。
我们学习java肯定知道定义变量时,private,public,protected分别代表了访问权限,那么定义变量时static代表什么意思呢?static表示类第一次实例化之前就被加载,翻译过来就是这个类的static变量,你可以直接拿过来用,用法:类名.变量名而非静态变量,你必须实例化类,也就是:new 类名() 类名.变量名 才能使用。那么fin原创 2017-04-12 17:56:39 · 422 阅读 · 0 评论 -
建立基于maven 的springmvc mybatis工程
开发工具:eclipseJDK:1.8服务器:tomcat8.0数据库:mysqlRound 1 Ready Go!!首先我们需要在eclipse创建一个基于maven的动态的web工程。详情请参考:http://blog.csdn.net/qq_34309305/article/details/78674255Round 2 Ready Go!!接下来我们要进行配原创 2017-12-20 10:33:46 · 229 阅读 · 0 评论