
java
虎贲啊
这个作者很懒,什么都没留下…
展开
-
java中jar命令的使用
这篇文章主要介绍了jar命令的用法,非常实用,需要的朋友可以参考下本文详细讲述了JAR命令的用法,对于大家学习和总结jar命令的使用有一定的帮助作用。具体如下:JAR包是Java中所特有一种压缩文档,其实大家就可以把它理解为.zip包。当然也是有区别的,JAR包中有一个META-INF\MANIFEST.MF文件,当你找成JAR包时,它会自动生成。JAR包是由JDK转载 2016-11-16 23:29:57 · 492 阅读 · 0 评论 -
集合容器
容器容器不能持有基本类型,但是自动包装机制会将基本类型包装为所持有的包装器类型。Collection接口List、Set、Queue都继承Collection接口。List以特定顺序保存一组元素,Set元素不能重复,Queue只允许在容器一端插入,并从另一端移除对象 LinkedList的index是后进先出即越后进index越小。迭代器Iterator工作是遍历原创 2018-01-09 00:55:18 · 164 阅读 · 0 评论 -
Java虚拟机参数及命令
Java -verbose:gc 引用自Java -verbose:gc 命令 参数-verbose:gc 表示输出虚拟机中GC的详细情况. 使用后输出如下: [Full GC 168K->97K(1984K), 0.0253873 secs] 解读如下: 箭头前后的数据168K和97K分别表示垃圾收集GC前后所有存活对象使用的内存容量,说明有168K-转载 2018-02-06 01:12:41 · 341 阅读 · 0 评论 -
Eclipse Memory Analyzer,内存泄漏插件,安装使用
网上文档很多,但最初都有问题。整理一份,作为备份。使用过程:开发代码写完后,对可能出现内存溢出的代码,添加配置文件,生成.hprof文件,用memory Analyzer分析排查问题,且泄漏内存大小可配置。具体安装测试一条龙如下:1.安装:help-》install new software -》work with : 这里填写eclipse版本: Kepler - http:转载 2018-02-06 01:27:54 · 354 阅读 · 0 评论 -
fastjson SerializerFeature详解
依赖转载自:https://blog.youkuaiyun.com/u010246789/article/details/52539576 <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId&g...转载 2018-05-27 20:11:40 · 1158 阅读 · 0 评论 -
java中String类型存放位置及String.intern()
转载自:https://blog.youkuaiyun.com/soonfly/article/details/70147205 在翻《深入理解Java虚拟机》的书时,又看到了2-7的 String.intern()返回引用的测试。 其实要搞明白String.intern(),我总结了下面几条规则: 一、new String都是在堆上创建字符串对象。当调用 intern() 方法时,编译器会将字符串...转载 2018-05-29 21:49:30 · 1447 阅读 · 0 评论 -
枚举实现单例原理:线程安全及发序列化依旧为单例原因
单例的枚举实现在《Effective Java》中有提到,因为其功能完整、使用简洁、无偿地提供了序列化机制、在面对复杂的序列化或者反射攻击时仍然可以绝对防止多次实例化等优点,单元素的枚举类型被作者认为是实现Singleton的最佳方法。其实现非常简单,如下:public enum Singleton { INSTANCE; private Singleton() {} ...转载 2018-06-20 23:29:31 · 1489 阅读 · 0 评论 -
Windows命令行下编译包含中文字符的Java文件报错
Test.java (注意保存为uft-8 无BOM格式)[java] view plain copypublic class Test { public static void main(String[] args) { System.out.println("中国人"); } } 使用javac -encoding utf-8 Test.java...转载 2018-06-21 21:55:15 · 828 阅读 · 0 评论 -
Java日志框架——JCL
原文地址JCL,全称为"Jakarta Commons Logging",也可称为"Apache Commons Logging"。一、JCL原理1、基本原理JCL这个日志框架跟Log4J,Java Logging API等日志框架不同。JCL采用了设计模式中的“适配器模式”,它对外提供统一的接口,然后在适配类中将对日志的操作委托给具体的日志框架,比如Log4J,Java Logging API等...转载 2018-06-24 15:10:04 · 948 阅读 · 1 评论 -
修改eclipse中的classpath将/core-server/src/test/java文件夹加入classpath
1.首先,在Eclipse的Run Application ...的Arguments页的VM arguments设置classpath和Djava.class.path是无效的。-classpath %classpath%;D:/programmetools/workspaceForTest/项目名称/target/test-classes;2.所以要另找方法,右键点击项目Run->Jav...原创 2018-07-05 10:36:03 · 762 阅读 · 1 评论 -
java锁与volatile内存语义:变量内存可见性
1、volatile的写-读与锁的释放-获取有相同的内存效果: a、volatile的写与锁的释放有相同的内存语义; b、volatile读与锁的获取有相同的内存语义;2、volatile写-读的内存语义: a、当写一个volatile变量时,JMM(Java内存模型)会把该线程对应的本地内存中的共享变量值刷新到主内存; b、当读一个volatile变量...原创 2018-07-11 20:03:09 · 218 阅读 · 0 评论 -
java线程池创建及核心线程池过期设置
import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.Future;import java.util.concurrent.LinkedBlockingQueue;import java.util.concurrent....原创 2018-07-25 20:31:27 · 3201 阅读 · 0 评论 -
ThreadLocal本地线程变量
import java.util.concurrent.TimeUnit;/** * 测试ThreadLocal * @author * @since */public class ThreadLocalTest { private static ThreadLocal<StudentA> studentALocal = new ThreadLocal<>...原创 2018-07-15 16:10:24 · 171 阅读 · 0 评论 -
桥接方法(转)
转载地址:https://blog.youkuaiyun.com/mhmyqn/article/details/47342577在看spring-mvc的源码的时候,看到在解析handler方法时,有关于获取桥接方法代码,不明白什么是桥接方法,经过查找资料,终于理解了什么是桥接方法。什么是桥接方法桥接方法是 JDK 1.5 引入泛型后,为了使Java的泛型方法生成的字节码和 1.5 版本前的字节码...转载 2018-08-27 11:38:28 · 498 阅读 · 0 评论 -
为什么要重写java中对象的equals方法和hashCode方法以及如何重写
当我们写了一个类的时候,我们一般要重写这个类的equals方法,因为所有类都继承Object,而Object中的equals方法是这么写的: public boolean equals(Object obj){ return this==obj; } 也就是Object中的equals方法实际上比较的是两个对象是否是同一个(包含内存地址...转载 2018-08-23 14:46:50 · 199 阅读 · 0 评论 -
java中String类型==判断及equals()判断
1、java中String类型变量不同创建方式==判断情况如下:import org.junit.Test;import org.slf4j.Logger;import org.slf4j.LoggerFactory;public class StringTest { private static final Logger logger = LoggerFactory.getLog...原创 2018-08-25 12:55:39 · 3301 阅读 · 0 评论 -
有趣的博客
地址:https://me.youkuaiyun.com/qq_28986619转载 2018-08-30 14:25:09 · 258 阅读 · 0 评论 -
eclipse中创建maven项目
代码如下package chapterTwo.synchronize;import chapterTwo.synchronizeUtils.Service;import chapterTwo.synchronizeUtils.*;public class Run { public static void main(String[] args){ Service原创 2018-02-01 04:24:42 · 209 阅读 · 0 评论 -
内部类
可以在一个方法里面或者任意的作用域内定义内部类。内部类可以被四个访问权限修饰(public、private、protected、包)。如果想从外部类的非静态方法之外的任意位置创建某个内部类的对象,那么必须具体指明这个对象的类型:OuterClassName.InnerClassName。public class Test { class Inner{ pub原创 2018-01-08 09:57:41 · 121 阅读 · 0 评论 -
抽象类及接口
抽象类定义:包含抽象方法的类叫做抽象类。如果一个类包含抽象方法则该类必须被限定为抽象的。子类必须实现抽象类中的抽象方法,否则子类也必须被abstract修饰为抽象类。不能产生抽象类对象。接口定义:interface关键字产生一个完全抽象的类,没有提供任何具体实现,它允许创建者确定方法签名和返回类型,但没有任何方法体。一个类可以实现多个接口。接口可以包含域(成员变量),但是这些域原创 2018-01-07 14:55:35 · 137 阅读 · 0 评论 -
java中foreach循环
foreach循环遍历时分两种情况 当遍历的集合类型是基本数据类型及String类型时,是值传递,即在遍历中改变集合元素状态时,集合本身并不改变。当遍历的集合类型是创建的对象时,是引用传递,在遍历中改变集合元素状态时,集合本身元素状态也改变。package test;import test.Person;import java.util.ArrayList;import java.uti原创 2016-11-21 01:14:29 · 430 阅读 · 0 评论 -
java数据及对象存储位置
堆栈 存放于堆栈中的有引用堆存放于堆中的有对象常量存储常量存储在代码内部。但是在嵌入式系统中,常量本身会和其他部分分隔离开,可以选择将其存放在ROM中非RAM存储如果数据完全存活于程序之外,可以不受程序的任何控制的话,在程序没有运行时也可以存在。两个基本例子是流对象和持久化对象。在流对象中,对象转化为字节流,通常被发送给另一台机器。在持久化对象中,对象被存放于磁盘中。原创 2018-01-04 01:22:22 · 324 阅读 · 0 评论 -
java中equals()与==比较
1. 对于==,如果作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等;如果作用于引用类型的变量,则比较的是所指向的对象的地址2. 对于equals方法(注意:equals方法不能作用于基本数据类型的变量),如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址;诸如String、Date等类对equals方法进行了重写的话,比较的是所指向的对象的内容。//Ob转载 2018-01-04 09:09:57 · 156 阅读 · 0 评论 -
this关键字和构造器
构造器尽管可以用this调用一个构造器,但却不能调用两个,并且构造器调用必须置于最起始处,否则编译器会报错。除构造器外,编译器禁止在其他任何方法中调用构造器。public class Student{ int age = 18; String name = "小明"; Student(int age){ this.age = age; } S原创 2018-01-04 22:50:02 · 256 阅读 · 0 评论 -
垃圾回收和finalize()
垃圾回收 对象可能不被垃圾回收。垃圾回收只与内存有关。finalize() 一旦垃圾回收器准备好释放对象占用的存储空间,将首先调用finalize()方法,并且在下一次垃圾回收动作发生时才会真正回收对象占用的内存。finalize()一般用于在垃圾回收时刻做一些重要的清理工作,因为对象会被垃圾回收,不必清理,所以finalize()方法主要负责释放通过某种创建对象方式以外的方式为对象分配的原创 2018-01-05 00:08:44 · 256 阅读 · 0 评论 -
基本数据类型及对象初始化
Java尽力保证:所有变量在使用前都能得到恰当的初始化。基本数据类型初始化当作为类的成员时,即使没有初始化,依旧会获得一个默认值,编译器不会报错。 基本类型 默认值 boolean false char ‘\u0000’(null) byte (byte)0 short (short)0 int 0原创 2018-01-04 01:45:28 · 1889 阅读 · 0 评论 -
static用法
static方法不能调用非static方法或变量。static不能修饰局部变量。只有第一次访问静态数据时,静态数据才会被初始化。此后,静态对象不会再次被初始化。静态变量及对象默认初始化值和普通变量相同。原创 2018-01-05 01:05:21 · 120 阅读 · 0 评论 -
可变参数列表
最好只在重载方法中使用一个可变参数列表,否则可能因为参数匹配问题报错。public class Test1 { static void f(float i, Character... args){ System.out.println("first"); } static void f(Character... args){ //可能为零个参数原创 2018-01-05 09:52:39 · 133 阅读 · 0 评论 -
Java中设置环境变量CLASSPATH的意义
当Java程序运行并需要加载.class文件时,通过JAVA解释器读取CLASSPATH就可以确定.class文件在目录上的位置了。Java解释器运行过程如下: 首先,找出环境变量CLASSPATH,用作查找.class文件的根目录。从根目录开始,解释器获取包的名称并将每个句点换成反斜杠,以从CLASSPATH中获得一个路径名称。得到的路径会与CLASSPATH中各个不同的项相连接,解释器原创 2018-01-06 07:08:22 · 2415 阅读 · 0 评论 -
java包
默认包 没有给自己设定任何包名称的类,则该类属于默认包,Java将这样的文件自动看作是隶属于该目录的默认包中。 Thinking in Java 第六章 访问控制权限原创 2018-01-06 09:32:32 · 367 阅读 · 0 评论 -
访问控制权限
java源文件(编译单元)中类成员访问控制权限一个java源文件(编译单元)中可以有一个public类,并且只能有一个。public 修饰类成员,则所有类都可以访问这个成员默认访问权限(包访问权限),包内所有类可访问,包外则是不能访问。protected(继承访问权限)修饰类成员,则只有包内类及包外子类可以访问。private 修饰类成员,则只有包含该成员的类外,其他任何类都无法访问原创 2018-01-06 06:27:47 · 210 阅读 · 0 评论 -
Java中String是值传递
注意,这里的值传递意思是传递的是指向引用所指向对象在堆中地址值,而不是引用自身在堆栈中地址值。下面是String值传递示例:public class Test { private static void change(String str){//这里的引用str与main中定义的str不同,两者引用所在地址不同,只不过现在两个引用所存储的对象地址相同 //因为原创 2018-01-06 11:08:13 · 2929 阅读 · 0 评论 -
Java中final关键字使用
当final修饰基本数据类型时,使数值恒定不变。修饰对象引用时,使引用恒定不变(一旦引用被初始化指向一个对象,就无法再把它指向另一个对象,然而对象自身确实可以修改的)。修饰方法参数时,表明无法在方法中更改参数引用所指向的对象。修饰方法时,表明方法不能被覆盖重写。修饰类时,表明该类不能被继承,则该类中所有方法都隐式指定为是final。注意: 1.一个既是static又是final原创 2018-01-07 09:36:44 · 160 阅读 · 0 评论 -
Java多态
多态也称作动态绑定,后期绑定或运行时绑定(在程序运行时而不是编译时根据对象类型进行绑定)。通过分离做什么和怎么做,从另一个角度将接口和实现分离开来。Java中所有方法(除了static方法和final方法,private方法属于final方法)都是动态绑定的。原创 2018-01-07 13:26:32 · 142 阅读 · 0 评论 -
类初始化
成员变量初始化 成员变量定义的先后顺序决定了初始化的顺序,即使成员变量定义散布于方法定义之间。 成员变量会在任何方法(包括构造器)被调用之前得到初始化。 成员变量和代码块一样,先后顺序决定初始化顺序。 静态成员初始化优先于普通成员变量。类加载时机一般来说,类的代码在初次使用(通常指创建类的第一个对象时),或者访问static域或static方法时被加载。类只会被加载一次原创 2018-01-05 01:01:15 · 201 阅读 · 0 评论 -
Java中重写(覆盖)
一般来说,重写方法返回类型必须和父类方法返回类型相同,但是Java SE5之后有以下改变: 在子类中重写的方法可以返回父类中被重写方法返回类型的某种导出类型即子类型。 Thinking in Java 第八章 多态 协变返回类型原创 2018-01-07 13:50:10 · 212 阅读 · 0 评论 -
Java 基本数据类型存储位置
Java 基本数据类型 及 == 与 equals 方法的区别转载地址:https://www.cnblogs.com/Latiny/p/8099581.html Java数据类型分为基本数据类型与引用数据类型。 1 基本数据类型byte:Java中最小的数据类型,在内存中占1个字节(8 bit),取值范围-128~127,默认值0short:短整型,2个字节(16...转载 2018-11-05 10:48:13 · 19424 阅读 · 8 评论