Java 核心知识整理
文章平均质量分 85
Java 核心知识整理
攻城狮不是猫
公众号:攻城狮不是猫,分享各种编程语言、开发技术、分布式与微服务架构、分布式数据库、分布式事务、 云原生、大数据与云计算技术和渗透技术。另外,还会分字各种视频资源,面试题和面试技巧。
展开
-
Socket 客户端 服务端 心跳监测
public class ClientHeart extends Thread { @Override public void run() { try { while (true) { ClientSender.getInstance().send(); synchronize...转载 2018-10-22 16:53:19 · 2683 阅读 · 0 评论 -
50道Java线程面试题
不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎。大多数待遇丰厚的Java开发职位都要求开发者精通多线程技术并且有丰富的Java程序开发、调试、优化经验,所以线程相关的问题在面试中经常会被提到。在典型的Java面试中, 面试官会从线程的基本概念问起, 如:为什么你需要使用线程, 如何创建线程,用什么方式...原创 2018-02-23 17:28:07 · 134 阅读 · 0 评论 -
Java泛型自定义设计命名的区别以及好处
根据官方解释,原文章我在oracle官网打开显示404E - Element集合中使用,比如List<E>T-Type声明是类型持有者的名称,比如定义一个泛型dao,可以用BaseDao<T>K-Key,V-Value用在键值匹配,比如Map<K,V>N-Number这个我没用过?表示不确定,比如List 同 List&...转载 2019-04-24 00:30:59 · 319 阅读 · 0 评论 -
什么是RESTful 如何给老婆解释什么是RESTful Javdroider
如何给老婆解释什么是RESTfulJavdroider Hong3 个月前老婆经常喜欢翻看我订阅的技术杂志,她总能从她的视角提出很多有趣的问题。一个悠闲的周日下午,她午觉醒来,又习惯性的抓起这个月的杂志,饶有兴趣地看了起来。果不其然,看着看着,她又对我发难了,“Restful是什么呀,老公?是restaurant的形容词吗,突然就觉得好饿了啊......”作原创 2018-01-24 11:28:39 · 282 阅读 · 0 评论 -
如何避免Java线程中的死锁
如何避免Java中的死锁?是多线程赛季味道的问题之一,在高级别上提出了更多问题并带有大量后续问题。尽管问题看起来非常基本,但大部分开发人员一旦开始深入研究就会陷入困境。面试问题从“ 什么是死锁? ” 开始,答案很简单,当两个或更多线程正在等待对方释放锁定并在无限时间卡住时,情况就称为死锁。它只会发生在多任务的情况下。你如何检测Java中的死锁?虽然这可能有很多答案,但是我的版本首先会查看代码,如果...翻译 2018-02-24 13:31:47 · 236 阅读 · 0 评论 -
Java对double值进行四舍五入,保留n位小数的几种方法。其中,只有最后2种是最准确的。
项目要对一个double值保留小数点后3位,网上找到好几种方法,选一个用在项目中,实测发现有误差,再换一种,还是会有误差。最后经过多种情况测试,发现最后2种是精确的。package com.example.testndk;import java.math.BigDecimal;import java.math.RoundingMode;import java.text.Decimal...转载 2019-04-19 21:57:07 · 1905 阅读 · 0 评论 -
《Effective Java》Second Edition中文版笔记(完整)
原文地址:https://blog.csdn.net/youngsend/article/details/48086151第2章 创建和销毁对象第1条:考虑用静态工厂方法代替构造器一个类只能有一个带有指定签名的构造器。编程人员通常知道如何避开这一限制:通过提供两个构造器,它们的参数列表只在参数类型的顺序上有所不同。实际上这并不是个好主意。面对这样的API,用户永远也记不住该用哪个构造器,结果常常会...转载 2018-05-28 14:29:57 · 1144 阅读 · 0 评论 -
史上最简单 理解依赖注入和控制反转
从一个任务开始讲某天,公司领导找到开发人员,说要开发一个微信支付宝的收款明细获取功能,我们把这个任务作为一个案例进行说明。第一步:设计案例精简:把任务指派给开发人员完成。本句话中,有两个名词:“任务”和“开发人员”,所以我们考虑设计两个对象(任务和开发人员)。开发人员对象:package DependencyInjectionDemo;public class Javae...转载 2019-04-22 14:16:46 · 418 阅读 · 0 评论 -
事务的4种隔离级别,3大问题,脏读幻读不可重复读
一、数据库事务隔离级别数据库事务的隔离级别有4个,由低到高依次为Read uncommitted、Read committed、Repeatable read、Serializable,这四个级别可以逐个解决脏读、不可重复读、幻读这几类问题。√: 可能出现×: 不会出现脏读 不可重复读 幻读Read uncommitted √ √ ...转载 2019-05-05 13:41:20 · 1779 阅读 · 0 评论 -
java中RSA加解密的实现
原文:https://blog.csdn.net/draven1122/article/details/55212195关于加密数据长度和解密数据长度大家可以看一下我前一篇文章内的介绍:关于RSA算法密钥长度/密文长度/明文长度的介绍 [java] view plain copypublic static void main(String[] args) throws Exception { ...转载 2018-04-19 14:32:45 · 838 阅读 · 0 评论 -
spring mvc —— 上传文件 用 Commons FileUpload 上传文件(4-1)
controllerimport java.io.File;import java.io.IOException;import java.io.UnsupportedEncodingException;import java.util.ArrayList;import java.util.List;import javax.servlet.http.HttpServletRequ原创 2018-01-05 16:53:19 · 235 阅读 · 0 评论 -
java-观察者模式
原创 2017-12-29 16:16:27 · 97 阅读 · 0 评论 -
Java形参跟实参是什么?
形参:全称为“形式参数”是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传递的参数。形参的作用是实现主调函数与被调函数之间的联系,通常将函数所处理的数据,影响函数功能的因素或者函数处理的结果作为形参。没有形参的函数在形参表的位置应该写void.main 函数也可以有形参和返回值,其形参也称为命令行参数,由操作系统在启动程序时初始化,其返回值传递给操作系统。实参:可以是常量、变...转载 2019-03-22 14:25:06 · 5315 阅读 · 0 评论 -
tomcat jsp 打印 sigar
<%@page session="false" contentType="text/html; charset=ISO-8859-1" %><%@page import="org.hyperic.sigar.*" %><%@page import="java.io.PrintWriter" %><%@page import=原创 2018-10-23 09:36:55 · 178 阅读 · 0 评论 -
Java集合---HashSet的源码分析
一、HashSet概述:HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用null元素。二、HashSet的实现:对于HashSet而言,它是基于HashMap实现的,HashSet底层使用HashMap来保存所有元素,因此HashSet的实现比原创 2018-01-29 15:50:26 · 116 阅读 · 1 评论 -
HashMap和HashSet的区别
HashMap和HashSet的区别是Java面试中最常被问到的问题。如果没有涉及到Collection框架以及多线程的面试,可以说是不完整。而Collection框架的问题不涉及到HashSet和HashMap,也可以说是不完整。HashMap和HashSet都是collection框架的一部分,它们让我们能够使用对象的集合。collection框架有自己的接口和实现,主要分为Set接口,Lis原创 2018-01-29 15:41:45 · 108 阅读 · 1 评论 -
SigarUtils
import java.io.PrintWriter;import java.net.InetAddress;import java.net.UnknownHostException;import java.util.Map;import java.util.Properties;public class SigarUtil { public static void main...原创 2018-10-22 19:49:48 · 288 阅读 · 0 评论 -
什么是多线程中的竞争条件 - Java中的2个示例
什么是多线程中的竞争条件 - Java中的2个示例Java中的竞态条件是一种并发错误或问题,它是在您的程序中引入的,因为您的程序在多个线程同时并行执行,因为Java是一种多线程编程语言,因此在Java中竞争条件的风险更高要求清楚了解导致竞赛状况的原因以及如何避免这种情况。反正竞争条件只是é 危险或风险在Java中使用多线程的呈现就像在Java中的僵局。当两个线程在没有正确同步的同一对象上操作并且操...翻译 2018-03-07 21:37:19 · 4058 阅读 · 0 评论 -
如何在Java代码示例中停止线程
如何在Java代码示例中停止线程线程是Java中重要的类之一,多线程是最广泛使用的一个特性,但是没有明确的方法来阻止Java中的Thread。早些时候在Thread类中存在一种停止方法,但是由于一些安全原因,Java不赞成该方法。默认情况下,当run()方法的执行正常结束或由于任何Exception时,Thread停止。在本文中,我们将使用布尔状态变量或标志来停止Java中的Thread。使用一个...翻译 2018-03-07 21:28:41 · 268 阅读 · 0 评论 -
webservice 获得客户端ip
/** * 获得客户端IP * @return */ public String getClientIP() { org.apache.cxf.message.Message message = PhaseInterceptorChain.getCurrentMessage(); HttpServletRequest httpre...原创 2018-06-01 14:42:08 · 480 阅读 · 0 评论 -
JavaMail SMTP服务器 阿里云服务器发送失败
1、阿里云及腾讯云关闭了25端口2、根据不同的邮箱进行端口选择;我使用的是网易邮箱 端口设置994;注意要开启SSL否则还是发送失败;mail: host: smtp.163.com username: xxxx@163.com password: xxxx port: 994 properties: mail.smtp.auth: true...原创 2018-05-04 17:22:50 · 1755 阅读 · 0 评论 -
利用jdk XML 转成 xsd 再转成 javaBean
原文地址:攻城狮不是猫 第一种方法首先拿到xml 例如:<status><sigar cpu="31.2" memory="87" jvm="79" disk="70" /><jvm><memory free='98567840' total='124780544' max='1825046528'/&g原创 2018-06-06 19:42:23 · 2132 阅读 · 4 评论 -
java面向对象的理解
java面向对象编程概念总结面向对象的实质就是一种认识事物的方法。,是一种以对象为中心的思维方式。每个对象都有特征和属性两大要素,属性是对象静态特征的描述,行为是对象动态特征的描述。类是具有相同属性和相同行为的对象集合。类是对象的抽象,而对象是类的实例。面向对象的三个主要特征:封装,继承,多态。静态方法通常用于工具类,反复调用一个类用静态(申明为静态类)。静态类直原创 2018-01-24 17:54:16 · 206 阅读 · 0 评论 -
java 加密工具类(MD5、RSA、AES等加密方式)
1.加密工具类encryptionMD5加密原文 https://blog.csdn.net/u011659172/article/details/50627903[java] view plain copyimport org.apache.commons.codec.digest.DigestUtils; /** * MD5加密组件 * * @author wbw * @ver...转载 2018-04-19 13:28:29 · 709 阅读 · 0 评论 -
SpringBoot Controller 中使用多个@RequestBody的正确姿势
最近遇到Controller中需要多个@RequestBody的情况,但是发现并不支持这种写法, 这样导致 1、单个字符串等包装类型都要写一个对象才可以用@RequestBody接收; 2、多个对象需要封装到一个对象里才可以用@RequestBody接收。 查阅StackOverFlow,受到一个解决方案的启发,本人改进为以下版本,并给出了详尽的注释,希望对大家有帮助。 改进...转载 2019-08-12 17:53:41 · 3588 阅读 · 0 评论 -
[java]byte和byte[]与int之间的转换
1、byte与int转换public static byte intToByte(int x) {return (byte) x;}public static int byteToInt(byte b) {//Java 总是把 byte 当做有符处理;我们可以通过将其和 0xFF 进行二进制与得到它的无符值return b & 0xFF;}2、byte...原创 2018-02-24 17:11:06 · 2654 阅读 · 1 评论 -
HashMap、TreeMap、Hashtable、HashSet和ConcurrentHashMap区别
一、HashMap和TreeMap区别1、HashMap是基于散列表实现的,时间复杂度平均能达到O(1)。 TreeMap基于红黑树(一种自平衡二叉查找树)实现的,时间复杂度平均能达到O(log n)。2、HashMap、TreeMap都继承AbstractMap抽象类;TreeMap实现SortedMap接口,所以TreeMap是有序的!HashMap是无序的。原创 2018-01-29 15:52:20 · 170 阅读 · 1 评论 -
java switch while用法
public static void main(String args[]) { int month = 4; String season; switch (month) { case 12: case 1: case 2: season = "Winter"; break;原创 2018-01-02 17:37:13 · 1696 阅读 · 0 评论 -
【Java数据结构】HashMap扩容全过程
1.如果HashMap的大小超过了负载因子(load factor)定义的容量,怎么办?默认的负载因子大小为0.75,也就是说,当一个map填满了75%的bucket时候,和其它集合类(如ArrayList等)一样,将会创建原来HashMap大小的两倍的bucket数组,来重新调整map的大小,并将原来的对象放入新的bucket数组中。这个过程叫作rehashing,因为它调用hash方法找...转载 2019-03-14 10:43:30 · 7020 阅读 · 1 评论 -
Eclipse 的JEE 版本中,使用JAXB 生成XSD文件的Java 类
1. 问题Eclipse 的JEE 版本中,使用JAXB 生成XSD文件的Java 类 浏览器中点击xsd 文件, 右键,生成,JAXB 类, 报告错误: Generate JAXB Classes - cannot find XJCFacade 2. 解决方案 把工程的java运行时环境,从jre变成jdk即可。3. 参考http://www.eclipse.org/forums/in...转载 2018-03-26 09:38:35 · 2069 阅读 · 0 评论 -
关于java中import和package的作用详解
有些人写了一阵子Java,可是对於Java的package跟import还是不太了解很多人以為原始码.java档案中的import会让编译器把所import的程式通通写到编译好的.class档案中,或是认為import跟C/C++的#include相似,实际上,这是错误的观念。让我们先了解一下,Java的package到底有何用处。其实,package名称就像是我们的姓,原创 2018-01-24 17:55:02 · 1931 阅读 · 1 评论 -
java 技术名词
Java Applet :http://www.runoob.com/java/java-applet-basics.htmlFork/Join框架:http://www.infoq.com/cn/articles/fork-join-introduction#mainLogin, /cn/articles/fork-join-introduction#mainLoginHotspot JVM:h原创 2018-01-02 14:04:02 · 185 阅读 · 0 评论 -
java 静态 及 常量
原创 2017-12-27 17:31:17 · 246 阅读 · 0 评论 -
Java中的10个单例模式访问问题
Singleton设计模式是您将在Java应用程序中看到的最常见的模式之一,并且它也在核心Java库中大量使用。来自Singleton模式的问题在Java访谈中非常常见,并且对如何实现Singleton模式有着很好的了解。这也是我最喜欢的设计模式面试问题之一,并且有很多有趣的后续细节,这不仅仅是检查设计模式的知识,而且还检查编码,多线程方面这是非常重要的,而为实际应用工作。在这篇文章中,列出了Ja...翻译 2018-03-07 21:50:05 · 913 阅读 · 0 评论 -
HashMap深度解析(一)
本文来自:高爽|Coder,原文地址:http://blog.csdn.net/ghsau/article/details/16843543,转载请注明。 HashMap可以说是Java中最常用的集合类框架之一,是Java语言中非常典型的数据结构,我们总会在不经意间用到它,很大程度上方便了我们日常开发。在很多Java的笔试题中也会被问到,最常见的,“HashMap和HashTabl原创 2018-01-29 15:19:25 · 94 阅读 · 1 评论 -
java 书籍
第一部分: Java语言篇1 《Java编程规范》 星级: 适合对象:初级,中级 介绍:作者James Gosling(Java之父),所以这本书我觉得你怎么也得读一下。对基础讲解的很不错。2 《Java核心技术:卷Ⅰ基础知识》 星级: 适合对象:初级,中级 介绍:官方机构图书,你怎么也得有一本,这本书比较全面而且易懂。放在案旁用到的时候查一查,看一看。是学习入门必备书...原创 2018-01-30 13:17:10 · 290 阅读 · 1 评论 -
window jar包启动
title test-server-1.0-SNAPSHOTrem set JAVA_OPTS=-Xms256m -Xmx256mrem mode con cp select=936mode con cols=100 lines=100java -Dfile.encoding=utf-8 -jar -Xms64m -Xmx256m test-server-1.0-SNAPSHOT.jar...原创 2018-11-20 10:02:19 · 969 阅读 · 0 评论 -
【java面经】HashMap?面试?我是谁?我在哪
1、为什么用HashMap? 2、HashMap的工作原理是什么? 3、有什么方法可以减少碰撞? 4、HashMap中hash函数怎么是是实现的? 5、拉链法导致的链表过深问题为什么不用二叉查找树代替,而选择红黑树?为什么不一直使用红黑树? 6、说说你对红黑树的见解? 7、解决hash 碰撞还有那些办法? 8、如果HashM...转载 2019-03-09 22:28:06 · 1702 阅读 · 0 评论 -
Java集合---ArrayList的实现原理
目录: 一、ArrayList概述 二、ArrayList的实现 1) 私有属性 2)构造方法 3) 元素存储 4) 元素读取 5) 元素删除原创 2018-01-29 15:53:59 · 113 阅读 · 1 评论 -
最近5年183个Java面试问题列表及答案[最全]
Java 面试随着时间的改变而改变。在过去的日子里,当你知道 String 和 StringBuilder 的区别(String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象。因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字符串最好不要用 Stri...转载 2019-04-30 16:02:16 · 711 阅读 · 0 评论