
java
文章平均质量分 91
Tanyboye
专注于计算机领域的一枚程序员!
展开
-
Java异常详解及如何处理
来源:Java异常详解及如何处理简介 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常。异常发生时,是任程序自生自灭,立刻退出终止,还是输出错误给用户?或者用C语言风格:用函数返回值作为执行状态?。Java提供了更加优秀的解决办法:异常处理机制。异常处理机制能让程序在异常发生时,按照代码的预先设定的异常处理逻辑,针对性地处理异常,让程序尽最大可能恢...转载 2018-06-01 10:39:40 · 794 阅读 · 0 评论 -
JAVA设计模式之单例模式
来源:JAVA设计模式之单例模式概念: java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例、饿汉式单例、登记式单例。单例模式有以下特点: 1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,...转载 2018-05-23 20:36:04 · 294 阅读 · 0 评论 -
Java 11 新功能来了!
关键时刻,第一时间送达!目前 Oracle 已经发布了 Java Development Kit 10,下个版本 JDK 11 也即将发布。本文介绍 Java 11 的新功能。根据Oracle新出台的每6个月发布一次Java SE的节奏,Java 11将于2018年9月发布,迄今为止Oracle已经宣布了好几个新功能。此外,Java 11还将删除一些功能,其中包括删除CORBA和Jav...转载 2018-05-26 18:44:41 · 415 阅读 · 0 评论 -
Servlet基础——快速了解什么是Servlet
来源 | 为知笔记| 作者 | 水之笔记一、什么是servletservlet是在服务器端运行的一个小程序。一个servlet就是一个java类,并且可以通过“请求-响应”编程模型来访问的这个驻留在服务器内存里的servlet程序。二、tomcat容器等级tomcat的容器等级分为四个等级,servlet的容器管理context容器,一个context对应一个web工程。Engine是个引擎容器H...转载 2018-05-16 10:59:17 · 564 阅读 · 0 评论 -
常见的Redis面试题及分布式集群讲解
作者 :蘑菇先生出处 : http://www.cnblogs.com/mushroom/1. 使用Redis有哪些好处?(1) 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1) (2) 支持丰富数据类型,支持string,list,set,sorted set,hash (3) 支持事务,操作都是原子性,所谓的原子性就是对数...转载 2018-05-22 00:20:49 · 430 阅读 · 0 评论 -
海量数据处理 - 找出最大的n个数(top K问题)
前言前两天面试3面学长问我的这个问题(想说TEG的3个面试学长都是好和蔼,希望能完成最后一面,各方面原因造成我无比想去鹅场的心已经按捺不住了),这个问题还是建立最小堆比较好一些。 先拿10000个数建堆,然后一次添加剩余元素,如果大于堆顶的数(10000中最小的),将这个数替换堆顶,并调整结构使之仍然是一个最小堆,这样,遍历完后,堆中的10000个数就是所需的最大的10000个。建堆...转载 2018-05-15 15:05:57 · 5328 阅读 · 0 评论 -
程序员如何高效学习?看完这篇你就知道了
作者 :NaYoung来源 :博客园写在前面其实学习是一件很私人的事情,每个人都应该有一套自己的学习方式,而不是照搬照抄别人的。适合别人的不一定适合自己。所以,读这篇分享的时候,请以一种【这点是不是对我有帮助】的心态来阅读,而不是【原来我要这样才能学的好】的心态。如果你觉得某一点对你有用,那就记在心里,如果你觉得不太适合你,那么一笑而过就好。我不是什么大牛,只是一个普通的本科生,...转载 2018-05-21 15:20:59 · 1238 阅读 · 1 评论 -
Java进阶--深入理解ArrayList实现原理
ArrayList简介ArrayList就是动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了动态的增加和减少元素,实现了Collection和List接口,可以灵活的设置数组的大小。要注意的是ArrayList并不是线程安全的,因此一般建议在单线程中使用ArrayList。ArrayList的继承关系public class ArrayList<E> extends A...转载 2018-04-29 01:01:41 · 162 阅读 · 0 评论 -
Java关键字new-----对象的内存分配原理
一、关键字new概述 "new"可以说是Java开发者最常用的关键字,我们使用new创建对象,使用new并通过类加载器来实例化任何我们需要的东西,但你是否深入了解过new在编译的瞬间都做了什么? 在Java中使用new关键字创建对象变得很容易了,事实上,对这些事情你是不需要考虑的。需要访问一个文件吗?只需要创建一个新的File实例:new File(“jdbc.proper...转载 2018-04-29 00:55:48 · 360 阅读 · 0 评论 -
10大必备的Intellij插件,大幅提高你的工作效率
作者 :葛俊_0f97来源 : 简书善用Intellij插件可大幅提升我们的效率以下是我用过不错的Intellij插件1. .ignore生成各种ignore文件,一键创建git ignore文件的模板,免得自己去写2. lombok支持lombok的各种注解,从此不用写getter setter这些 可以把注解还原为原本的java代码 非常方便3. p3c阿里巴巴出品的...转载 2018-05-20 00:27:07 · 6760 阅读 · 1 评论 -
java集合类详解
来源:JAVA集合类汇总一、集合与数组 数组(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知的情况下使用。集合(只能存储对象,对象类型可以不一样)的长度可变,可在多数情况下使用。二、层次关系 如图所示:图中,实线边框的是实现类,折线边框的是抽象类,而点线边框的是接口Collection接口是集合类的根接口,Java中没有提供这个接口的直接的实现类。但是却让...转载 2018-06-11 17:17:49 · 369 阅读 · 0 评论 -
枚举7常见种用法
来源:Java 枚举7常见种用法DK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。用法一:常量在JDK1.5 之前,我们定义常量都是: public static fianl…. 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。public enum Color { RED, GREEN,...转载 2018-05-29 00:40:51 · 519 阅读 · 0 评论 -
java注解-最通俗易懂的讲解
来源:秒懂,Java 注解 (Annotation)你可以这样学Annotation 中文译过来就是注解、标释的意思,在 Java 中注解是一个很重要的知识点,但经常还是有点让新手不容易理解。我个人认为,比较糟糕的技术文档主要特征之一就是:用专业名词来介绍专业名词。比如: Java 注解用于为 Java 代码提供元数据。作为元数据,注解不直接影响你的代码执行,但也有一些类型的...转载 2018-06-05 10:24:36 · 124546 阅读 · 177 评论 -
java线程-看这一篇就够了
来源:Java中的多线程你只要看这一篇就够了前言 如果对什么是线程、什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内。基本概念 用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现。说这个话其实只有一半对,因为反应“多角色”的程序代码,最起码每个角色要给他一个线程吧,否则连实际场景都无法模拟,当然也没法说能用单线程来...转载 2018-06-08 09:52:19 · 564 阅读 · 0 评论 -
javaIO详解
来源:编程语言的基础——搞定JavaIOJava I/O流是一组有顺序的,有起点和终点的字节集合。是对设备文件间数据传输的总称和抽象。在IO中涉及的设备文件包括文件、控制台、网络链接等,这其中又根据流的方向可以将两端的设备文件分为数据源对象和接收端对象数据源对象:有能力产出数据接收端对象:有能力接收数据而IO流实际上屏蔽了在实际设备中的处理数据的细节,这些处理方式也叫...转载 2018-06-07 18:56:07 · 5068 阅读 · 0 评论 -
程序员涨薪必备技能(1-5年必看!!!)
来源:涨薪必备技能(1-5年必看!!!)前言 工作1-5年,当我们向老板提出加薪的时候,或者跳槽去“捡”offer的时候,我们底气够吗?敢不敢不给涨薪就“挥一挥衣袖,不带走一个bug”?是不是提出要求后你的主管、经理立刻同意,为了把你留住。然而,现实往往是…技术不过硬,其他的都免谈。前景 Web应用,最常见的研发语言是Java和PHP。后端服务,最常见的研发语言是Java和C/C++。大数据,...转载 2018-06-14 16:21:44 · 4413 阅读 · 0 评论 -
深入理解 Java 中的 Lambda
作者:标签: 李三石 来源:my.oschina.net/leili我花了相当多的阅读和编码时间才最终理解Java Lambdas如何在概念上正常工作的。我阅读的大多数教程和介绍都遵循自顶向下的方法,从用例开始,最后以概念性问题结束。在这篇文章中,我想提供一个自下而上的解释,从其他已建立的Java概念中推导出Lambdas的概念。首先介绍下方法的类型化,这是支持方法作为一流公民的先决条件。基于...转载 2018-06-22 10:44:11 · 1003 阅读 · 0 评论 -
最详细的java泛型详解
来源:最详细的java泛型详解对java的泛型特性的了解仅限于表面的浅浅一层,直到在学习设计模式时发现有不了解的用法,才想起详细的记录一下。本文参考java 泛型详解、Java中的泛型方法、 java泛型详解1. 概述 泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用。什么是泛型?为什么要使用泛型? 泛型,即“参数化类型”。一提到参数,最熟...转载 2018-05-31 10:38:07 · 739 阅读 · 1 评论 -
java设计模式之装饰者模式
来源:java模式—装饰者模式1、意图 动态地给一个对象添加一些额外的职责。就增加功能来说, Decorator模式相比生成子类更为灵活。该模式以对客 户端透明的方式扩展对象的功能。2、适用环境 (1)在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责。(2)处理那些可以撤消的职责。(3)当不能采用生成子类的方法进行扩充时。一种情况是,可能有大量独立的扩展,为支持每一种组合将产生大...转载 2018-06-13 20:16:08 · 375 阅读 · 0 评论 -
java反射详解
来源:Java基础之—反射(非常重要)反射是框架设计的灵魂使用的前提条件:必须先得到代表的字节码的Class,Class类用于表示.class文件(字节码)一、反射的概述JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的...转载 2018-06-06 13:28:49 · 925 阅读 · 0 评论 -
常见的缓存穿透,缓存击穿,缓存雪崩解决方案分析
作者:zeb_perfect来源:blog.youkuaiyun.com/zeb_perfect前言 设计一个缓存系统,不得不要考虑的问题就是:缓存穿透、缓存击穿与失效时的雪崩效应。缓存穿透 缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。在流量大时,可...转载 2018-05-30 10:15:22 · 383 阅读 · 0 评论 -
String类的不可变性
来源 | 简书| 作者 | 指尖上的榴莲一.原理(为什么说String类是不可变的)1.什么是不可变对象如果一个对象在创建之后就不能再改变它的状态,那么这个对象是不可变的(Immutable)。不能改变状态的意思是,不能改变对象内的成员变量,包括基本数据类型变量的值不能改变,引用类型的变量不能指向其他的对象,引用类型指向的对象的状态也不能改变。2.final关键字的作用如果要创建一个不可变对象,关...转载 2018-05-13 21:55:40 · 1601 阅读 · 1 评论 -
理解MVC及快速入门
来源 | 个人博客| 作者 | MrSaber说明:传统MVC——>JSPModel2——>Front Controller + Application Controller + Page Controller + Context 三种模式是JavaWeb设计模式的逐渐适配和演进。本文分别讲述了这三种模式,作为了解即可。SpringMVC正是采用了第三种设计模式。MVC说明 MVC是...转载 2018-05-12 20:29:59 · 1303 阅读 · 0 评论 -
Java设计模式——代理模式实现及原理
简介Java编程的目标是实现现实不能完成的,优化现实能够完成的,是一种虚拟技术。生活中的方方面面都可以虚拟到代码中。代理模式所讲的就是现实生活中的这么一个概念:中介。代理模式的定义:给某一个对象提供一个代理,并由代理对象控制对原对象的引用。代理模式包含如下角色:ISubject:抽象主题角色,是一个接口。该接口是对象和它的代理共用的接口。RealSubject:真实主题角色,是实现抽象主题接口的类...转载 2018-04-27 18:40:58 · 218 阅读 · 0 评论 -
Spring中获取request的几种方法,及其线程安全性分析
目录概述如何测试线程安全性方法1:Controller中加参数方法2:自动注入方法3:基类中自动注入方法4:手动调用方法5:@ModelAttribute方法总结概述在使用Spring MVC开发Web系统时,经常需要在处理请求时使用request对象,比如获取客户端ip地址、请求的url、header中的属性(如cookie、授权信息)、body中的数据等。由于在Spring MVC中,处理请求...转载 2018-04-18 20:23:01 · 247 阅读 · 0 评论 -
HashMap的实现原理
HashMap概述HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。HashMap的数据结构在Java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,HashMap也不例外。HashMap实际上是一个“链表散列...转载 2018-04-22 20:02:15 · 122 阅读 · 0 评论 -
Spring Boot快速入门
简介在您第1次接触和学习Spring框架的时候,是否因为其繁杂的配置而退却了?在你第n次使用Spring框架的时候,是否觉得一堆反复黏贴的配置有一些厌烦?那么您就不妨来试试使用Spring Boot来让你更易上手,更简单快捷地构建Spring应用!Spring Boot让我们的Spring应用变的更轻量化。比如:你可以仅仅依靠一个Java类来运行一个Spring引用。你也可以打包你的应用为jar并...转载 2018-04-17 22:42:15 · 155 阅读 · 0 评论 -
java邮件发送
java邮件发送需要2个依赖包1.javax.mail.jar:http://www.oracle.com/technetwork/java/javamail/index-138643.html2.activation.jar:http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads...原创 2018-03-21 22:16:27 · 613 阅读 · 0 评论 -
MD5加密java实现
/** * 获取大写字母+数字的MD5字符串 * @param key * @return */ public static String getMD5(String key) { char hexDigits[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; try { ...原创 2018-03-14 18:53:26 · 941 阅读 · 0 评论 -
java中八大基本数据类型
1.基本数据类型的分类java中的类型分为基本数据类型和引用类型,今天我们讨论的是java中的八大基本数据类型。基本数据类型可以分为三类:1.数值类型。2.字符类型。3.布尔类型。数值类型又分为:1.整数类型。2.浮点数类型。整数类型:byte,short,int,long浮点数类型:float,double字符类型:char布尔类型:boolean2.基本知识基本类型大小(字节)默认值封装类by...原创 2018-02-08 17:00:09 · 482 阅读 · 0 评论 -
java关键字之final关键字解析
在java中,final关键字和static关键字一样,都可以用来修饰类,方法,成员变量,通常可以用来改善应用程序的性能,但是final强调的是“不可变性”。1.修饰变量final关键字可以用来修饰成员变量和方法中的变量。当一个数据被final和static同时修饰时,我们通常把它称为常量。final的不可变性表现在:被final修饰的变量只能够进行一次赋值操作。原创 2018-01-29 02:18:57 · 384 阅读 · 0 评论 -
JDBC实现简单增删改查
JDBC全称为:Java Data Base Connectivity (java数据库连接),主要用于java与数据库的链接。整个链接过程如下图:1.数据库驱动:Driver加载mysql驱动:Class.forName("com.mysql.jdbc.Driver");加载oracle驱动:Class.forName("oracl原创 2018-01-23 13:28:38 · 38785 阅读 · 3 评论 -
事物在Controller层的探索
Transaction在Controller层的探索一般开发中事务要求我们放在Service层,可是有些情况,我们可能会要求放在Controller层,你有没有碰到过这样的需求呢?那么放到Controller层事务会生效吗?会产生什么问题呢?下面一起来看看I、透过现象看本质第一种情况Controller层代码如下@RestController @RequestMapping("/city") ...转载 2018-04-19 12:50:48 · 807 阅读 · 0 评论 -
java线程池的实现原理
前言线程是稀缺资源,如果被无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,合理的使用线程池对线程进行统一分配、调优和监控,有以下好处:1、降低资源消耗;2、提高响应速度;3、提高线程的可管理性。Java1.5中引入的Executor框架把任务的提交和执行进行解耦,只需要定义好任务,然后提交给线程池,而不用关心该任务是如何执行、被哪个线程执行,以及什么时候执行。demo1、Executors...转载 2018-04-30 19:38:04 · 285 阅读 · 1 评论 -
Java日志框架:logback详解
为什么使用logback记得前几年工作的时候,公司使用的日志框架还是log4j,大约从16年中到现在,不管是我参与的别人已经搭建好的项目还是我自己主导的项目,日志框架基本都换成了logback,总结一下,logback大约有以下的一些优点:内核重写、测试充分、初始化内存加载更小,这一切让logback性能和log4j相比有诸多倍的提升logback非常自然地直接实现了slf4j,这个严格来说算不上...转载 2018-04-30 19:49:49 · 1174 阅读 · 0 评论 -
MyBatis快速入门
来源 | 个人博客 | 作者 | 湖畔微风简介简介MyBatis的前身叫iBatis,本是apache的一个开源项目, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis。MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。...转载 2018-05-11 17:09:58 · 293 阅读 · 0 评论 -
百度"Java面试题"前200页都在这里了
欢迎关注java技术学习之道,本公众号长期分享各种技术文章。基本概念操作系统中 heap 和 stack 的区别什么是基于注解的切面实现什么是 对象/关系 映射集成模块什么是 Java 的反射机制什么是 ACIDBS与CS的联系与区别Cookie 和 Session的区别fail-fast 与 fail-safe 机制有什么区别get 和 post请求的区别Interface 与 abstract...转载 2018-04-26 13:56:39 · 232 阅读 · 0 评论 -
资深大牛的吐血建议,你想知道如何学习,怎样进入阿里吗?
作者 : 左潇龙 | 来源 : 博客园引言 其实本来真的没打算写这篇文章,主要是LZ得记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的对话都给记下来。LZ自己当初面试完以后,除了记住一些聊过的知识点以外,具体的内容基本上忘得一干二净,所以写这篇文章其实是很有难度的。 但是,最近问LZ的人实在是太多了,为了避免重复回答,给自己省点力气,干脆就在这里统一回...转载 2018-05-17 03:08:59 · 866 阅读 · 0 评论 -
java50道基础面试题
欢迎关注java技术学习之道,本公众号长期分享各种技术文章。1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?Java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被编译成能被Java虚拟机执行的字节码文件。Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译。Java虚拟机让这个变为可能,因为它知道底层硬件平台的...原创 2018-04-25 21:05:43 · 1708 阅读 · 0 评论 -
一位资深程序员大牛给予Java初学者的学习路线建议
欢迎关注java技术学习之道,本公众号长期分享各种技术文章。java学习这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是我你是如何学习Java的,能不能给点建议?今天我是打算来点干货,因此咱们就不说一些学习方法和技巧了,直接来谈每个阶段要学习的内容甚至是一些书籍。这一部分的内容,同样适用于一些希望转行到Java的同学。 在大家看之前,我要先声明两点。1、由于我本人...转载 2018-04-25 21:00:30 · 515 阅读 · 1 评论