代码改变世界

随笔档案-2017年12月

javap(反汇编命令)

2017-12-27 16:49 by faunjoe88, 458 阅读, 收藏,
摘要: 用法: javap <options> <classes> 其中, 可能的选项包括: -help --help -? 输出此用法消息 -version 版本信息 -v -verbose 输出附加信息 -l 输出行号和本地变量表 -public 仅显示公共类和成员 -protected 显示受保护的/ 阅读全文

JAVA字节码解析

2017-12-27 16:32 by faunjoe88, 1497 阅读, 收藏,
摘要: Java字节码指令 Java 字节码指令及javap 使用说明 ### java字节码指令列表 JVM指令助记符 变量到操作数栈:iload,iload_,lload,lload_,fload,fload_,dload,dload_,aload,aload_ 操作数栈到变量:istore,istor 阅读全文

jdbc驱动的类加载过程

2017-12-26 18:21 by faunjoe88, 898 阅读, 收藏,
摘要: 分析一下jdbc工作过程中涉及到的类加载流程,重点是想看看在双亲委派模型不适用的时候,如何解决。 第一步,加载数据库的驱动 Class.forName 方法会根据类的全路径名称去加载对应的class文件,生成类型,并初始化类型。也就是说static语句块会执行。 下面来看看 com.mysql.jd 阅读全文

GetClassLoader和GetCallerClass的使用

2017-12-26 18:14 by faunjoe88, 633 阅读, 收藏,
摘要: GetClassLoader是JAVA中用来得到ClassLoader的 JAVA中有以下几种ClassLoader. 1. Bootstrap ClassLoader - GetClassLoader的返回值为Null,是JVM的C++源码, Ext ClassLoader 的Parent 主要负 阅读全文

Maven的生命周期和插件

2017-12-26 14:40 by faunjoe88, 234 阅读, 收藏,
摘要: 一个完整的项目构建过程通常包括清理、编译、测试、打包、集成测试、验证、部署等步骤,Maven从中抽取了一套完善的、易扩展的生命周期。Maven的生命周期是抽象的,其中的具体任务都交由插件来完成。 Maven为大多数构建任务编写并绑定了默认的插件,如针对编译的插件:maven-compiler-plu 阅读全文

阿里二面

2017-12-26 11:36 by faunjoe88, 304 阅读, 收藏,
摘要: (1)自我介绍,做过什么项目。 (2)java虚拟机的区域如何划分,每一个区的动能,这一块自由发挥。 (3)双亲委派模型中,从顶层到底层,都是哪些类加载器,分别加载哪些类? (4)有没有可能父类加载器和子类加载器,加载同一个类?如果加载同一个类,该使用哪一个类? (5)HashMap的结构,get( 阅读全文

阿里一面

2017-12-26 11:33 by faunjoe88, 287 阅读, 收藏,
摘要: 1)自我介绍。 (2)JVM如何加载一个类的过程,双亲委派模型中有哪些方法? (3)HashMap如何实现的? (4)HashMap和Concurrent HashMap区别, Concurrent HashMap 线程安全吗, Concurrent HashMap如何保证 线程安全? (5)Has 阅读全文

Maven plugin 插件

2017-12-25 15:44 by faunjoe88, 302 阅读, 收藏,
摘要: 1.maven-surefire-plugin简介: Maven在构件时执行到测试的生命周期时,会使用maven-surefire-plugin运行测试用例,背后执行的Junit或者TestNG的测试框架。 在默认情况下,maven-surefire-plugin的test目标会自动执行测试源码路径 阅读全文

Mac上传文件到Linux服务器

2017-12-23 18:17 by faunjoe88, 11899 阅读, 收藏,
摘要: 1、 打开 终端,选择 2、选择安全文件传输,输入连接主机IP 3、输入主机名 4、输入yes,然后输入主机密码,按回车结束 确认连接 输入远程主机密码 5、连接成功,上传文件 上传结果如图 6、linux主机下查看文件 阅读全文

maven的.m2文件夹

2017-12-23 16:31 by faunjoe88, 2415 阅读, 收藏,
摘要: 安装完maven是没有.m2文件夹的。 Maven缺省的本地仓库路径为${user.home}/.m2/repository 在linux中以.开头的文件夹都是隐藏的。当使用maven命令的时候,maven自动会创建.m2文件夹。 运行命令mvn help:system,查看java系统属性和环境变 阅读全文

使用Nexus搭建Maven私服

2017-12-23 11:42 by faunjoe88, 3 阅读, 收藏,
该文被密码保护。 阅读全文

maven parent.relativePath

2017-12-18 23:36 by faunjoe88, 1039 阅读, 收藏,
摘要: Maven parent.relativePath 默认值为../pom.xml 查找顺序:relativePath元素中的地址–本地仓库–远程仓库 设定一个空值将始终从仓库中获取,不从本地路径获取,如<relativePath /> 阅读全文

GoLang structTag说明

2017-12-18 16:04 by faunjoe88, 336 阅读, 收藏,
摘要: 在处理json格式字符串的时候,经常会看到声明struct结构的时候,属性的右侧还有小米点括起来的内容。形如 struct成员变量标签(Tag)说明 要比较详细的了解这个,要先了解一下golang的基础,在golang中,命名都是推荐都是用驼峰方式,并且在首字母大小写有特殊的语法含义:包外无法引用。 阅读全文

Mac下如何用SSH连接远程Linux服务器

2017-12-18 00:04 by faunjoe88, 224 阅读, 收藏,
摘要: 1.终端命令 1.打开Mac的命令终端,检查是不是用root登陆,如果不是的话,就输入命令:sudo -i切换到root 2.输入ssh root@192.168.50.80 它会提示你输入密码,输入正确的密码之后,你就发现已经登陆成功了. 1.打开Mac的命令终端,检查是不是用root登陆,如果不 阅读全文

String.split

2017-12-15 12:25 by faunjoe88, 201 阅读, 收藏,
摘要: String version = 2.2.1; String[] versionComponents = version.split("\\."); 阅读全文

【转】Java虚拟机类型卸载和类型更新解析

2017-12-13 17:43 by faunjoe88, 458 阅读, 收藏,
摘要: 【摘要】 前面系统讨论过java类型加载(loading)的问题,在这篇文章中简要分析一下java类型卸载(unloading)的问题,并简要分析一下如何解决如何运行时加载newly compiled version的问题。 【相关规范摘要】 首先看一下,关于java虚拟机规范中时如何阐述类型卸载( 阅读全文

【转】Java类加载原理解析

2017-12-13 16:45 by faunjoe88, 263 阅读, 收藏,
摘要: 原链接 1 基本信息 每个java开发人员对java.lang.ClassNotFoundExcetpion这个异常肯定都不陌生,这背后就涉及到了java技术体系中的类加载。 Java的类加载机制是java技术体系中比较核心的部分,虽然和大部分开发人员直接打交道不多, 但是对其背后的机理有一定理解有 阅读全文

Java读取classpath下的文件

2017-12-13 12:04 by faunjoe88, 8322 阅读, 收藏,
摘要: 写Java程序时会经常从classpath下读取文件,是时候该整理一下了,并在不断深入的过程中,陆续补充上。 现在Java project 都以maven项目居多, 比如像下面这样的一个项目结构: 编译后的class文件都到了target目录,如下面的结构: 看代码: 通过上面这种方式就可以获取到这 阅读全文

Java中获取classpath路径下的资源文件

2017-12-13 11:56 by faunjoe88, 9659 阅读, 收藏,
摘要: ClassLoader 提供了两个方法用于从装载的类路径中取得资源: public URL getResource (String name); public InputStream getResourceAsStream (String name); 这里name是资源的类路径,它是相对与“/”根 阅读全文

java web项目中classes文件夹下的class和WEB-INF/lib中jar里的class文件加载顺序

2017-12-13 11:50 by faunjoe88, 1954 阅读, 收藏,
摘要: 如果是发布到weblogic的话,可以在WebContent\WEB-INF\weblogic.xml里面配置。 参考配置如下: <?xml version="1.0" encoding="UTF-8"?> <weblogic-web-app xmlns="http://www.bea.com/ns 阅读全文

Java中用ClassLoader载入各种资源(类、文件、web资源)的方法

2017-12-13 11:41 by faunjoe88, 356 阅读, 收藏,
摘要: lassLoader主要对类的请求提供服务,当JVM需要某类时,它根据名称向ClassLoader要求这个类,然后由ClassLoader返回这个类的class对象。 ClassLoader负责载入系统的所有资源(Class,文件,图片,来自网络的字节流等), 通过ClassLoader从而将资源载 阅读全文

【转】深度分析Java的ClassLoader机制(源码级别)

2017-12-13 11:21 by faunjoe88, 1208 阅读, 收藏,
摘要: 原链接 Java中的所有类,必须被装载到jvm中才能运行,这个装载工作是由jvm中的类装载器完成的,类装载器所做的工作实质是把类文件从硬盘读取到内存中, JVM在加载类的时候,都是通过ClassLoader的loadClass()方法来加载class的,loadClass使用双亲委派模式。 为了更好 阅读全文

【转】一看你就懂,超详细java中的ClassLoader详解

2017-12-11 15:17 by faunjoe88, 3001 阅读, 收藏,
摘要: http://blog.csdn.net/briblue/article/details/54973413 ClassLoader翻译过来就是类加载器,普通的java开发者其实用到的不多,但对于某些框架开发者来说却非常常见。 理解ClassLoader的加载机制,也有利于我们编写出更高效的代码。Cl 阅读全文

深入分析Java ClassLoader原理

2017-12-08 12:48 by faunjoe88, 339 阅读, 收藏,
摘要: 一、什么是ClassLoader? 大家都知道,当我们写好一个Java程序之后,不是管是CS还是BS应用,都是由若干个.class文件组织而成的一个完整的Java应用程序, 当程序在运行时,即会调用该程序的一个入口函数来调用系统的相关功能,而这些功能都被封装在不同的class文件当中, 所以经常要从 阅读全文

ConcurrentMap注意事项

2017-12-07 23:19 by faunjoe88, 1032 阅读, 收藏,
摘要: java.util.concurrent.ConcurrentMap接口和ConcurrentHashMap实现类 只能在键不存在时将元素加入到map中, 只有在键存在并映射到特定值时才能从map中删除一个元素。 主要定义了下面几个方法(K表示键的类型,V表示值的类型):1. V putIfAbse 阅读全文

class<T>和 class<?>类型 有什么区别

2017-12-07 22:59 by faunjoe88, 950 阅读, 收藏,
摘要: 追问: 也就是说,这个方法能知道返回的是哪种类型(父类),就用T行了?如果完全不知道的就用?用T的得到的对象就不需要类型转换了,而用?的就必需用强转了! 追问: 也就是说,这个方法能知道返回的是哪种类型(父类),就用T行了?如果完全不知道的就用?用T的得到的对象就不需要类型转换了,而用?的就必需用强 阅读全文

Class<T>和Class<?>区别

2017-12-07 22:51 by faunjoe88, 294 阅读, 收藏,
摘要: Class<T>在实例化的时候,T要替换成具体类Class<?>它是个通配泛型,?可以代表任何类型 阅读全文

hashmap 和 hashtable 的区别

2017-12-07 15:04 by faunjoe88, 191 阅读, 收藏,
摘要: 1 Hashtable 和 HashMap 做为 Map 的基本特性 两者都实现了Map接口,基本特性相同 - 对同一个Key,只会有一个对应的value值存在 - 如何算是同一个Key? 首先,两个key对象的hash值相同,其次,key对象的equals方法返回真 2 内部数据结构 Hashta 阅读全文

Hashtable详细介绍(源码解析)和使用示例

2017-12-07 14:42 by faunjoe88, 1681 阅读, 收藏,
摘要: 第1部分 Hashtable介绍 Hashtable 简介 和HashMap一样,Hashtable 也是一个散列表,它存储的内容是键值对(key-value)映射。 Hashtable 继承于Dictionary,实现了Map、Cloneable、java.io.Serializable接口。Ha 阅读全文

【转】ConcurrentHashMap原理分析(1.7与1.8)

2017-12-06 23:52 by faunjoe88, 783 阅读, 收藏,
摘要: https://www.cnblogs.com/study-everyday/p/6430462.html 前言 以前写过介绍HashMap的文章,文中提到过HashMap在put的时候,插入的元素超过了容量(由负载因子决定)的范围就会触发扩容操作,就是rehash, 这个会重新将原数组的内容重新h 阅读全文

深入理解HashMap(及hash函数的真正巧妙之处)

2017-12-06 15:48 by faunjoe88, 220 阅读, 收藏,
摘要: 1、hashmap的数据结构 要知道hashmap是什么,首先要搞清楚它的数据结构,在java编程语言中,最基本的结构就是两种,一个是数组, 另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,hashmap也不例外。 Hashmap实际上是一个数组和链表的结合体(在数据结构中 阅读全文

HashMap中的equals和hashCode

2017-12-06 15:27 by faunjoe88, 639 阅读, 收藏,
摘要: HashMap的存储方式 HashMap的实现方式是数组链,不同的对象根据其哈希码(hashCode方法的返回值)找到对应的数组下标,然后存入数组。不同的对象有相同的哈希码时怎么办?这就由数组链中的链来解决了,相同哈希码的对象都放在同一条链上,该链的链头指向数组,进而形成数组链。 当第一个对象已经存 阅读全文

HashMap面试知识点

2017-12-06 15:11 by faunjoe88, 226 阅读, 收藏,
摘要: HashMap的工作原理是近年来常见的Java面试题。 几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道Hashtable和HashMap之间的区别,那么为何这道面试题如此特殊呢?是因为这道题考察的深度很深。 这题经常出现在高级或中高级面试中。ConcurrentHas 阅读全文

HashMap的工作原理-hashcode和equals原理的再次深入

2017-12-06 14:11 by faunjoe88, 296 阅读, 收藏,
摘要: 前言 首先再次强调hashcode (==)和equals的真正含义(我记得以前有人会说,equals是判断对象内容,hashcode是判断是否相等之类): equals:是否同一个对象实例。注意,是“实例”。比如String s = new String("test"); s.equals(s), 阅读全文

HashMap实现原理分析(面试问题:两个hashcode相同 的对象怎么存入hashmap的)

2017-12-06 13:54 by faunjoe88, 4478 阅读, 收藏,
摘要: 1. HashMap的数据结构 数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。 数组 数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难; 链表 链表存储区间离散,占用内存比较宽松,故空间复杂度 阅读全文

HashMap对HashCode碰撞的处理

2017-12-06 13:28 by faunjoe88, 2576 阅读, 收藏,
摘要: 先说Java之外的,什么是拉链法?怎么解决冲突的: 拉链法解决冲突的做法是:将所有关键字为同义词的结点链接在同一个单链表中。 若选定的散列表长度为m,则可将散列表定义为一个由m个头指针组成的指针数组t[0..m-1]。凡是散列地址为i的结点,均插入到以t为头指针的单链表中。 t中各分量的初值均应为空 阅读全文

区别 chown和chmod的用法

2017-12-01 15:07 by faunjoe88, 3139 阅读, 收藏,
摘要: 在linux系统中chmod,chown命令都可以来设置权限了,但它们也是有区别的,下文小编为各位介绍chmod与chown两个命令用法与区别介绍。 今天要分享的2个命令也是我们平时常用的,chmod与chown看似拼写还有点差不多,但是两者的用途是不同的。chmod是用来设置文件夹和文件权限的,比 阅读全文

Ubuntu 16.04 源码方式安装 JDK

2017-12-01 14:48 by faunjoe88, 607 阅读, 收藏,
摘要: 1.去官网下载JDK http://www.oracle.com/technetwork/articles/javase/index-jsp-138363.html 2.下载完成后,创建一个我们将要安装JDK的地方,我放在/opt下的Java文件夹下 sudo mkdir /opt/Java 3.进 阅读全文

ubuntu安装完整版的vim

2017-12-01 14:41 by faunjoe88, 1752 阅读, 收藏,
摘要: apt-get remove vim-commonapt-get install vim 阅读全文

Ubuntu 16.04 安装 IDEA

2017-12-01 14:40 by faunjoe88, 610 阅读, 收藏,
摘要: 1.下载地址:https://www.jetbrains.com/idea/download/#section=linux 选择without jdk版本下载 2.下载完成 解压 到 /opt下 先却换到下载目录 cd /home/qinkangdeid/Downloads 解压:sudo tar 阅读全文

ubuntu应用商店打不开怎么办

2017-12-01 10:34 by faunjoe88, 3882 阅读, 收藏,
摘要: 依次运行下面的命令: 桥接网络设置好 sudo apt-get update sudo apt-get dist-upgrade sudo apt-get install --reinstall software-center 阅读全文