java相关问题
设计java的相关问题
slagsea
一个热爱编程的渣渣屌丝
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
tomcat 部署项目设置访问前缀
大致有如下四种方式:1. 显示配置 Context 的 path 需要在 server.xml 文件中手动配置。<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"></Host>中添加<Context path="/&qu原创 2019-02-15 15:59:05 · 11303 阅读 · 0 评论 -
ThreadPoolExecutor参数解析
一、ThreadPoolExecutor的重要参数1)corePoolSize:核心线程数核心线程会一直存活,及时没有任务需要执行当线程数小于核心线程数时,即使有线程空闲,线程池也会优先创建新线程处理设置allowCoreThreadTimeout=true(默认false)时,核心线程会超时关闭2)queueCapacity:任务队列容量(阻塞队列)当核心线程数达到最大时...转载 2019-01-16 00:38:57 · 7513 阅读 · 0 评论 -
Java包装类的共同点
渣渣海除了写点博客外,还有github哦,欢迎进去看看,如果有喜欢的,记得加个小星星哦。github地址:https://github.com/xuhaihan?tab=repositories之前写过一篇博客,讲了基础的Java包装类的装包拆包过程,下面补充一下包装类它们的一些共同点。1.所有包装类都重写了Object方法 我们也很容易知道Object的方法有:bo...原创 2019-03-10 23:19:32 · 3541 阅读 · 0 评论 -
java线程同步的实现方式
这里抛砖引玉,为何要使用同步?当多个线程同时操作一个可共享的资源时会出现线程安全问题,将会导致数据不一致,因此使用同步锁来防止该操作执行完之前不许被其他线程执行,从而保证了该变量的唯一性和准确性。下面总结一些java线程实现同步方式,大致有下面几种:1.同步方法 使用 synchronized关键字,可以修饰普通方法、静态方法,以及语句块。由于java的每个对象都有一个内置锁...原创 2019-03-08 01:47:21 · 14082 阅读 · 2 评论 -
JAVA基本类型的拆箱和装箱
一个基础知识小回顾,码太多,基础的东西也要总结,最近推荐一本好书《java的编程逻辑》。里面除了讲述一些基础知识,还对线程并发那一块讲述的很明白,很不多,推荐!下面回归这次主题基本类型的拆箱和装箱。一、基本类型 java基本类型有8种: 整数:byte(1字节)、short(2字节)、int(4字节)、long(8字节) 浮点数:float、d...原创 2019-03-01 23:12:44 · 5456 阅读 · 0 评论 -
Java的非空处理
导语我之前太年轻,经常在项目中做很多if/else的空值判断,现在回想之前写的代码感觉像是一坨屎,现在写起来虽然好点,最后还是变成了另一坨屎,会让人觉得很不优雅。这些虽然跟业务逻辑没有多大关系,但就是会让你很头疼。有时候在进行接口对接的时候,要是忘记非空判断就会抛出空指针异常。下面结合几位大佬的结晶,总结梳理一下:业务中的空值场景存在一个UserSearchService用...原创 2019-01-20 17:00:31 · 8238 阅读 · 0 评论 -
如何优雅处理java异常
抛砖引玉: 处理反馈 业务异常 代码错误 ,认真思考一下各中区别. 在开发业务系统中,我们目前绝大多数采用MVC模式,但是往往有人把service跟controller紧紧的耦合在一起,甚至直接使用Threadlocal来隐式传值,并且复杂的逻辑几乎只能使用service中存储的全局对象来传递处理结果,包括异常.这样一来首先有违MVC模式,二来逻辑十分不清晰,难以维护.本文...转载 2019-01-20 16:09:51 · 7464 阅读 · 0 评论 -
常见Java GC Root
Java 进行GC的时,会从GC root进行可达性判断,常见的GC Root有:通过System Class Loader或者Boot Class Loader加载的class对象,通过自定义类加载器加载的class不一定是GC Root 处于激活状态的线程 栈中的对象 JNI栈中的对象 JNI中的全局对象 正在被用于同步的各种锁对象 JVM自身持有的对象,比如系统类加载器等。...转载 2019-01-16 22:42:42 · 7973 阅读 · 0 评论 -
String、StringBuilder、StringBuffer
一、Java String 类——String字符串常量 字符串广泛应用 在Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。需要注意的是,String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,这样不仅效率低下,而且大量浪费有限的内存空间。我们来看一下这张对String...转载 2019-01-09 16:35:12 · 6414 阅读 · 0 评论 -
java类的加载机制
1、什么是类的加载类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的Class对象,Class对象封装了类在方法区内的数据结构,并且向Java程序员提供了访问方法区内的数据结构的接口。类加载器并不需要等到某个类被“首次主动使...转载 2019-01-08 21:59:23 · 6460 阅读 · 0 评论 -
从jvm角度看java多线程
最近在学习jvm,发现随着对虚拟机底层的了解,对java的多线程也有了全新的认识,原来一个小小的synchronized关键字里别有洞天。决定把自己关于java多线程的所学整理成一篇文章,从最基础的为什么使用多线程,一直深入讲解到jvm底层的锁实现。多线程的目的为什么要使用多线程?可以简单的分两个方面来说:在多个cpu核心下,多线程的好处是显而易见的,不然多个cpu核心只跑一个线程其他...转载 2019-01-06 21:34:16 · 6538 阅读 · 0 评论 -
进程和线程的区别
一、概念进程:是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竞争计算机系统资源的基本单位。线程:是进程的一个执行单元,是进程内科调度实体。比进程更小的独立运行的基本单位。线程也被称为轻量级进程。 一个程序至少一个进程,一个进程至少一个线程。二、使用线程原因 每个进程都有自己的地址空间,即进程空间,在网络或多用户换机下,一个服务器通常...原创 2019-01-06 13:38:09 · 7539 阅读 · 0 评论 -
深入理解java虚拟机
一、为什么要学习Java虚拟机? 这里我们使用举例来说明为什么要学习Java虚拟机,其实这个问题就和为什么要学习数据结构和算法是一个道理,工欲善其事,必先利其器。曾经的我经常害怕处理内存溢出的问题,因为不知道他为什么会出现这个问题,当我在看了这本书以后明白了垃圾回收算法,以及JVM是如何帮助我们处理GC的,这个时候当出现这个问题的时候我就明白需要查找GC Root,或者查看GC日志,...转载 2019-01-05 00:32:36 · 6625 阅读 · 0 评论 -
Java的守护线程和非守护线程
一、守护线程 java分为两种线程:用户线程和守护线程 守护线程是指在程序运行的时候在后台提供一种通用服务的线程,比如垃圾回收线程就是一个很称职的守护者,并且这种线程并不属于程序中不可或缺的部分。因此,当所有的非守护线程结束时,程序也就终止了,同时会杀死进程中的所有守护线程。反过来说,只要任何非守护线程还在运行,程序就不会终止。 守护线程和用户...原创 2019-01-04 23:08:03 · 6499 阅读 · 0 评论 -
进程、线程、协程、goroutine区别
在golang开发的过程中相信大家最经常接触的就是go协程,但对于什么是协程以及什么是go协程,可能还停留在go出去的就是协程这个表面认知,这不仅会给我们项目带来隐藏的问题。对此,结合一些资料,从操作系统的角度来对进程,线程,协程进行介绍,并试着说明协程和goruntine是什么。一、概念理解 1、进程 进程是具有一定独立功能的程序关于某个数据集合上的一...原创 2019-01-03 02:10:09 · 11354 阅读 · 1 评论 -
Object和泛型的使用区别
在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实际参数类型可以预知的情况下进行的。对于强制类型转换错误的情况,编译器可能不提示错误,在运行的时候才出现异常,这是一个安全隐患。泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重...原创 2018-12-31 00:01:24 · 7147 阅读 · 0 评论 -
Java equals方法详解
首先equals方法是object类的方法,所有的类都默认继承object类,object类也就是所有类的超类。如果两个对象进行相等比较,需要调用x.equals(y),但是如果没有重写equals方法,那么默认使用的是object类的equals方法。public boolean equals(Object obj) { return (this == obj)...转载 2018-12-26 11:36:44 · 6734 阅读 · 1 评论 -
RPC和HTTP的区别
问题: HTTP可以实现的功能需求,为什么要用rpc?总结一些HTTP和RPC的异同:传输协议 RPC,可以基于TCP协议,也可以基于HTTP协议 HTTP,基于HTTP协议 传输效率 RPC,使用自定义的TCP协议,可以让请求报文体积更小,或者使用HTTP2协议,也可以很好的减少报文的体积,提高传输效率 HTTP,如果是基于HTTP1.1的协...原创 2018-12-24 23:25:55 · 13131 阅读 · 1 评论 -
Java 实现单例模式的 9 种方法
一. 什么是单例模式因进程需要,有时我们只需要某个类同时保留一个对象,不希望有更多对象,此时,我们则应考虑单例模式的设计。二. 单例模式的特点 单例模式只能有一个实例。 单例类必须创建自己的唯一实例。 单例类必须向其他对象提供这一实例。 三. 单例模式VS静态类在知道了什么是单例模式后,我想你一定会想到静态类,“既然只使用一个对象,为何不干脆使用静态类?”...转载 2019-01-06 21:30:22 · 8769 阅读 · 1 评论
分享