java
文章平均质量分 82
麦田里守望者_
这个作者很懒,什么都没留下…
展开
-
Java2020面试题
1、讲一下GC的过程2、什么样的对象会被老年代回收3、为什么要设置S0,S1区4、什么样的对象可以作为GC roots5、多线程的异步调用怎么实现的6、讲讲你最常用的单例模式 (我答的双重检测)7、双重检测的INSTACNE为什么要用voliate修饰8、voliate怎么保证可见性的9、Sychonized的作用是什么10、Sychonized 和 lock的区别11、排序算法以及时间复杂度12、讲讲代理模式13、网络编程有了解吗,讲讲TCP/UDP的区别14、为什么UDP速率比原创 2020-07-23 09:06:43 · 652 阅读 · 0 评论 -
MyBatis多租户隔离插件开发
在SASS的大潮流下,相信依然存在很多使用一个数据库为多个租户提供服务的场景,这个情况下一般是多个租户共用同一套表通过sql语句级别来隔离不同租户的资源,比如设置一个租户标识字段,每次查询的时候在后面附加一个筛选条件:TenantId=xxx。这样能低代价、简单地实现多租户服务,但是每次执行sql的时候需要附加字段隔离,否则会出现数据错乱。此隔离过程应该自动标识完成,所以我今天借助于My...原创 2019-12-28 12:22:32 · 1492 阅读 · 0 评论 -
spring-data-redis用配置类连接时,抛异常Cannot get Jedis connection; nested exception is java.lang.NullPointerEx
前提:redis服务器已经运行,且端口号,服务器地址都已经配置正常,但任然抛出无法获取连接异常原来的代码如下:@Bean public JedisConnectionFactory connectionFactory(){ JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFact...原创 2019-11-28 19:48:59 · 626 阅读 · 0 评论 -
ELK环境搭建
1.ELK版本下载路径:https://www.elastic.co/downloads/past-releases, 必须版本一致,不然会出现不兼容情况2.下载ELK的包:下载地址:https://www.elastic.co/downloads下载最新版的、linux服务器能使用的。右键复制链接地址,wget就可以下载,如:wgethttps://artifacts.elast...原创 2019-11-01 11:17:41 · 159 阅读 · 0 评论 -
JAVA面试
面试题模块介绍说了这么多,下面进入我们本文的主题,我们这份面试题,包含的内容了十九了模块:Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeeper、MySql、Redis、JVM 。如下图所...原创 2019-10-27 18:13:06 · 179 阅读 · 0 评论 -
SQL进行优化
一、为什么要对SQL进行优化我们开发项目上线初期,由于业务数据量相对较少,一些SQL的执行效率对程序运行效率的影响不太明显,而开发和运维人员也无法判断SQL对程序的运行效率有多大,故很少针对SQL进行专门的优化,而随着时间的积累,业务数据量的增多,SQL的执行效率对程序的运行效率的影响逐渐增大,此时对SQL的优化就很有必要。二、SQL优化的一些方法1.对查询进行优化,应尽量避免全表扫描...原创 2019-10-27 11:56:48 · 155 阅读 · 0 评论 -
SPRINGBOOT启动流程及其原理
Spring Boot、Spring MVC 和 Spring 有什么区别?分别描述各自的特征:Spring框架就像一个家族,有众多衍生产品例如boot、security、jpa等等;但他们的基础都是Spring 的ioc和 aop,ioc提供了依赖注入的容器,aop解决了面向切面编程,然后在此两者的基础上实现了其他延伸产品的高级功能。Spring MV...原创 2019-10-24 09:50:16 · 34878 阅读 · 8 评论 -
海量数据处理
何谓海量数据处理?所谓海量数据处理,无非就是基于海量数据上的存储、处理、操作。何谓海量,就是数据量太大,所以导致要么是无法在较短时间内迅速解决,要么是数据太大,导致无法一次性装入内存。那解决办法呢?针对时间,我们可以采用巧妙的算法搭配合适的数据结构,如Bloom filter/Hash/bit-map/堆/数据库或倒排索引/trie树,针对空间,无非就一个办法:大而化小,分而治...原创 2019-10-14 20:35:33 · 240 阅读 · 0 评论 -
JavaWeb学习总结——文件上传和下载
JavaWeb学习总结——文件上传和下载 在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现。 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请求参数是比较麻烦,所以一般选择采用apache的开源工具common-fileuplo转载 2015-08-11 20:35:44 · 548 阅读 · 1 评论 -
struts2标签<s:property value=""/> ognl和el
1、struts2标签解释http://zhidao.baidu.com/question/88668316.html?fr=qrl&index=02、struts2 的标签中 property是什么意思?怎么用?http://zhidao.baidu.com/question/310639670.html Struts2中的property标签是用于取得OgnlContext转载 2015-07-30 23:01:12 · 8437 阅读 · 2 评论 -
web前端
JavaScript的类型转换JavaScript是一种无类型语言,类型转换分为显式转换和隐式转换隐式转换通过运算符进行转换,在一些运算中,Javascript也会进行自动类型转换显式转换通过手动进行类型转换,Javascript提供了以下转型函数:转换为数值类型:Number(mix)、parseInt(string,radix)、parseFlo转载 2015-08-27 20:52:44 · 460 阅读 · 0 评论 -
Java上传下载excel、解析Excel、生成Excel的问题
Java上传下载excel、解析Excel、生成Excel的问题 (2011-03-25 21:44:24)转载▼标签: java excel 文件下载 excel解析 生成excel it分类: 学习交流 在软件开发过程中难免需要批量上传与下载,生转载 2015-08-03 22:23:24 · 575 阅读 · 0 评论 -
Java生成和操作Excel文件
Java生成和操作Excel文件JAVA EXCEL API:是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容、创建新的Excel文件、更新已经存在的Excel文件。使用该API非Windows操作系统也可以通过纯Java应用来处理Excel数据表。因为它是使用Java编写的,所以我们在Web应用中可以通过JSP、Servlet来调用API实现对Exce转载 2015-08-03 22:33:40 · 501 阅读 · 0 评论 -
Ajax返回Json在Java中的实现
实例二:Ajax返回Json在Java中的实现 在上一个随笔中,介绍AJAX的一个简单实例,在这篇中主要是说一下使用Json来将后台取得的数据显示到前台页面。可以说这种方法应该是实现无刷新分页的基础,而且在开发过程中经常被用到。这里的后台部分由JAVA来实现。 这个例子也在上一篇中那个项目中实现。新建一个SecondTest.html页面,定义一个按钮,并给这个按钮绑定事件aj转载 2015-08-04 20:15:47 · 467 阅读 · 0 评论 -
Java NIO通信框架在电信领域的实践
Java NIO通信框架在电信领域的实践 1. 华为电信软件技术架构演进1.1. 电信软件从广义上看电信软件的范围非常广,细分实际可以分为两大类:系统软件和业务应用软件。系统软件包括路由器底层的信令机软件、手机操作系统等,业务应用软件主要包括客户关系管理CRM、网上营业厅、融合计费OCS和各类消息网关,例如短信网关、彩信网关等。本文重点介绍电信业务应用软件的技术变迁转载 2015-09-29 22:42:34 · 1949 阅读 · 0 评论 -
Web服务器的工作原理
90Web服务器工作原理概述很多时候我们都想知道,web容器或web服务器(比如Tomcat或者jboss)是怎样工作的?它们是怎样处理来自全世界的http请求的?它们在幕后做了什么动作?Java Servlet API(例如ServletContext,ServletRequest,ServletResponse和Session这些类)在其中扮演了什么角色?这转载 2015-09-29 22:25:16 · 367 阅读 · 0 评论 -
Java类加载原理解析
Java类加载原理解析 1 基本信息摘要:每个java开发人员对java.lang.ClassNotFoundExcetpion这个异常肯定都不陌生,这背后就涉及到了java技术体系中的类加载。Java的类加载机制是java技术体系中比较核心的部分,虽然和大部分开发人员直接打交道不多,转载 2015-10-18 10:55:15 · 278 阅读 · 0 评论 -
深入Java集合:HashMap的实现原理
1. HashMap概述: HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 2. HashMap的数据结构: 在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本转载 2015-10-18 17:53:16 · 268 阅读 · 0 评论 -
用AXIS2发布法WebService的方法
用AXIS2发布法WebService的方法Axis2+tomcat6.0 实现webService 服务端发布与客户端的调用. 第一步:首先要下载开发所需要的jar包 下载:axis2-1.6.1-war.ziphttp://www.apache.org/dist//axis/axis2/java/core/1.6.1/下载完后解压至tomcat安装目录下转载 2015-09-14 21:27:46 · 333 阅读 · 0 评论 -
Tomcat
从server.xml文件解析出来的各个对象都是容器,比如:Server、Service、Connector等。这些容器都具有新建、初始化完成、启动、停止、失败、销毁等状态。tomcat的实现提供了对这些容器的生命周期管理,本文将通过对Tomcat7.0的源码阅读,深入剖析这一过程。Tomcat生命周期类接口设计我们先阅读图1,从中了解Tomcat涉及生命周期管理的主要类。转载 2015-10-18 12:41:20 · 437 阅读 · 0 评论 -
Java集合---ConcurrentHashMap原理分析
集合是编程中最常用的数据结构。而谈到并发,几乎总是离不开集合这类高级数据结构的支持。比如两个线程需要同时访问一个中间临界区(Queue),比如常会用缓存作为外部文件的副本(HashMap)。这篇文章主要分析jdk1.5的3种并发集合类型(concurrent,copyonright,queue)中的ConcurrentHashMap,让我们从原理上细致的了解它们,能够让我们在深度项目开发中获益非浅转载 2015-10-19 20:38:24 · 259 阅读 · 0 评论 -
ConcurrentHashMap的实现
Java 内存模型由于 ConcurrentHashMap 是建立在 Java 内存模型基础上的,为了更好的理解 ConcurrentHashMap,让我们首先来了解一下 Java 的内存模型。Java 语言的内存模型由一些规则组成,这些规则确定线程对内存的访问如何排序以及何时可以确保它们对线程是可见的。下面我们将分别介绍 Java 内存模型的重排序,内存可见性和 happens-转载 2015-10-19 21:30:27 · 381 阅读 · 0 评论 -
axis2-1.6.2+spring3.1.4 发布 webservice 客户端调用总结
axis2-1.6.2+spring3.1.4 发布 webservice 客户端调用总结 一、下载 axis2-1.6.2 下载地址: http://axis.apache.org/axis2/java/core/download.cgi ,自己根据情况确定下载,本人下载二、 spring3.1.4 下载 这个根据自己项目需要下载对转载 2015-09-15 22:09:20 · 716 阅读 · 0 评论 -
Axis与Spring的集成
WSDL 文档是利用这些主要的元素来描述某个 web service 的:元素 定义web service 执行的操作web service 使用的消息web service 使用的数据类型web service 使用的通信协议 下面是一个标准的ws转载 2015-09-16 20:49:40 · 801 阅读 · 0 评论 -
WebService之Axis2系列教程Axis2与Spring集成发布
WebService之Axis2系列教程(八)Axis2与Spring集成发布分类: webservice2013-08-13 13:38 4795人阅读 评论(2) 收藏 举报在现今的Web应用中经常使用Spring框架来装载JavaBean。如果要想将某些在Spring中装配的JavaBean发布成WebService,使用Axis2的Spring感知功能是非常容易转载 2015-09-16 20:28:38 · 598 阅读 · 0 评论 -
Java NIO原理 图文分析及代码实现
博客分类: java底层java NIO原理阻塞I/O非阻塞I/O Java NIO原理图文分析及代码实现 前言: 最近在分析hadoop的RPC(Remote Procedure Call Protocol ,远程过程调用协议,它是一种通过转载 2015-10-20 19:35:40 · 293 阅读 · 0 评论 -
FindBugs错误修改指南
FindBugs错误修改指南 1. EC_UNRELATED_TYPESBug: Call to equals() comparing different types Pattern id: EC_UNRELATED_TYPES, type: EC, category: CORRECTNESS解释:两个不同类型的对象调用equals方法,如果equals方法没有被重写,那么调用object转载 2015-09-21 19:27:51 · 2297 阅读 · 0 评论 -
findbug类型
SummaryDescriptionCategoryBC: Equals method should not assume anything about the type of its argumentBad practiceBIT: Check for sign of bitwise operationBad practiceCN:转载 2015-09-21 19:49:12 · 23906 阅读 · 0 评论 -
Findbugs 缺陷详解与英文代号的对照表
rule.findbugs.IMSE_DONT_CATCH_IMSE.name=不良实践 - 捕获可疑IllegalMonitorStateExceptionrule.findbugs.BX_BOXING_IMMEDIATELY_UNBOXED.name=性能 - 基本类型包装之后立刻解包rule.findbugs.IJU_SETUP_NO_SUPER.name=使用错误 - TestCase转载 2015-09-21 19:57:17 · 1428 阅读 · 0 评论 -
java实现生产者消费者问题
java实现生产者消费者问题 java实现生产者消费者问题 引言 生产者和消费者问题是线程模型中的经典问题:生产者和消费者在同一时间段内共用同一个存储空间,如下图所示,生产者向空间里存放数据,而消费者取用数据,如果不加以协调可能会出现以下情况:生产者消费者图 存储空间已满,而生产者占用着它,消费者等着生产者让出空间从而去除产品,生产者等着转载 2015-10-11 16:32:17 · 459 阅读 · 0 评论 -
Java 堆内存
Java 堆内存堆内存Java 中的堆是 JVM 所管理的最大的一块内存空间,主要用于存放各种类的实例对象。在 Java 中,堆被划分成两个不同的区域:新生代 ( Young )、老年代 ( Old )。新生代 ( Young ) 又被划分为三个区域:Eden、From Survivor、To Survivor。这样划分的目的是为了使 JVM 能够更好的转载 2015-10-26 22:28:27 · 292 阅读 · 0 评论 -
Java HashMap 的实现原理详解
Java HashMap的实现原理详解HashMap概述HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。HashMap的数据结构在Java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本原创 2015-10-12 20:21:04 · 307 阅读 · 0 评论 -
基于redis分布式缓存实现(新浪微博案例)
基于redis分布式缓存实现(新浪微博案例)第一:Redis 是什么?Redis是基于内存、可持久化的日志型、Key-Value数据库 高性能存储系统,并提供多种语言的API.第二:出现背景数据结构(Data Structure)需求越来越多, 但memcache中没有, 影响开发效率性能需求, 随着读操作的量的上升需要解决,经历的过程有: 数据库读写分离(转载 2015-10-14 21:03:17 · 493 阅读 · 0 评论 -
Ehcache与redis
Ehcache在java项目广泛的使用。它是一个开源的、设计于提高在数据从RDBMS中取出来的高花费、高延迟采取的一种缓存方案。正因为Ehcache具有健壮性(基于java开发)、被认证(具有apache 2.0 license)、充满特色(稍后会详细介绍),所以被用于大型复杂分布式web application的各个节点中。1. 够快Ehcache的发行有一段时长了,经过几年的努力和不转载 2015-10-14 21:07:58 · 1020 阅读 · 0 评论 -
JAVA内存分区
java虚拟机运行在受不同操作系统操纵的物理机上,不同的操作系统使用不同的底层方法来执行不同的操作,这些方法称之为本地方法:Native Method,本地方法一般执行的都是比较底层的操作,比如说IO、线程管理等,java方法则会执行的一般是相对高级的操作,比如说数逻运算,或者是调用底层的本地方法来完成底层任务。java虚拟机的运行时数据区域将内存分成了不同的部分协调完成java虚拟机的内转载 2015-10-15 22:11:48 · 445 阅读 · 0 评论 -
JVM
JVMJava 虚拟机 Java 虚拟机(Java virtual machine,JVM)是运行 Java 程序必不可少的机制。JVM实现了Java语言最重要的特征:即平台无关性。原理:编译后的 Java 程序指令并不直接在硬件系统的 CPU 上执行,而是由 JVM 执行。JVM屏蔽了与具体平台相关的信息,使Java语言编译程序只需要生成在JVM上运行的目标字节码(.class),就可以转载 2015-10-15 22:13:45 · 379 阅读 · 0 评论 -
Java中多态性的实现
Java中多态性的实现什么是多态面向对象的三大特性:封装、继承、多态。从一定角度来看,封装和继承几乎都是为多态而准备的。这是我们最后一个概念,也是最重要的知识点。多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用)实现多态的技术称为:动态绑定(dynamic binding),是指在执行期间判断所引转载 2015-11-17 23:31:09 · 366 阅读 · 0 评论 -
50道Java线程面试题
50道Java线程面试题下面是Java线程相关的热门面试题,你可以用它来好好准备面试。1) 什么是线程?线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速。比如,如果一个线程完成一个任务要100毫秒,那么用十个线程完成改任务只需10毫秒。Java在语言层面对多线程提供了转载 2015-11-23 21:52:03 · 361 阅读 · 0 评论 -
ThreadLocal原理及其实际应用
ThreadLocal原理及其实际应用原文链接 http://www.cnblogs.com/fangjian0423/p/java-threadlocal.html ThreadLocal原理及其实际应用前言java猿在面试中,经常会被问到1个问题: java实现同步有哪几种方式?大家一般都会回答使用synchronized, 那么还有其他方式吗?答案转载 2015-11-23 23:34:45 · 321 阅读 · 0 评论 -
HashMap的工作原理
HashMap的工作原理是近年来常见的Java面试题。几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道HashTable和HashMap之间的区别,那么为何这道面试题如此特殊呢?是因为这道题考察的深度很深。这题经常出现在高级或中高级面试中。投资银行更喜欢问这个问题,甚至会要求你实现HashMap来考察你的编程能力。ConcurrentHashMap和其它同步集合的引入转载 2015-11-17 21:55:25 · 299 阅读 · 0 评论