Java
lihaomuye
这个作者很懒,什么都没留下…
展开
-
gradle常用命令
gradle bootRun原创 2020-12-15 19:24:13 · 125 阅读 · 0 评论 -
JVM常用命令
jconsole原创 2020-12-15 19:11:42 · 128 阅读 · 0 评论 -
Lombok
@Slf4j 日志输出原创 2020-05-04 10:58:27 · 114 阅读 · 0 评论 -
mac切换jdk版本
# jdk1.6export JAVA_6_HOME=`/usr/libexec/java_home -v 1.6`# jdk1.8export JAVA_8_HOME=`/usr/libexec/java_home -v 1.8`# 默认 jdk 使用1.6版本JAVA_HOME=$JAVA_6_HOMEPATH=$JAVA_HOME/bin:$PATH:.CLASS...原创 2020-03-10 22:43:28 · 159 阅读 · 0 评论 -
Java虚拟机内存模型
Java虚拟机中一个重要的内存区域方法区:在java虚拟机中有一块专门用来存放已经加载的类信息、常量、静态变量以及方法代码的内存区域,叫做方法区。常量池:常量池是方法区的一部分,主要用来存放常量和类中的符号引用等信息。堆区:用于存放类的对象实例。栈区:也叫java虚拟机栈,是由一个一个的栈帧组成的后进先出的栈式结构,栈帧中存放方法运行时产生的局部变量、方法出口等信息。当调用一个方法原创 2015-10-05 19:04:04 · 233 阅读 · 0 评论 -
Java内存泄露
Java内存泄露原创 2015-11-05 11:33:01 · 245 阅读 · 0 评论 -
项目中遇到的问题
用户具有多种角色,32表示省级管理员,16表示项目管理员,8表示基地管理员,4表示班主任,2表示教师,1表示学员,按位与获得用户的角色,在session中用数组表示用户的角色。使用aop完成权限控制,页面放在WEB-INF下,对action进行拦截。jquery.form插件局部刷新文件上传,上传一个文件,成功则div中添加文件名称和删除链接,失败则给出提示。文原创 2015-10-25 10:54:25 · 250 阅读 · 0 评论 -
Java多线程同步的方式
1.同步方法用synchronized关键字修饰方法。由于java的每个对象都有一个内置锁,当用synchronized修饰方法时,内置锁会保护整个方法。在调用该方法前,需要获得内置锁,否则就处于阻塞状态。package syncMethod;public class Bank { private int count = 0;// 账户余额 // 存钱 public sync原创 2015-09-23 15:36:04 · 376 阅读 · 0 评论 -
Java Web框架
Spring MVC核心控制器org.springframework.web.servlet.DispatcherServletStruts2核心控制器org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilterStruts2和Spring MVC的区别(1)Sprin原创 2015-07-18 11:30:05 · 318 阅读 · 0 评论 -
线程安全的Java类
线程安全:StringBufferVectorHashTable线程不安全:StringBuilderArrayListHashMap原创 2016-03-21 08:46:02 · 221 阅读 · 0 评论 -
Java多线程
在Java中实现多线程继承Thread类。实现Runnable接口。如何停止一个线程run方法执行完时线程会自动结束。设置布尔变量,退出run方法的循环或取消任务来中断线程。Lock接口的优势是它为读和写分别提供了锁。wait和sleep的区别wait会释放锁,而sleep会一直持有锁。wait通常用于线程间交互,sleep通常用于暂停执行。原创 2015-08-03 16:32:46 · 236 阅读 · 0 评论 -
Java代码性能优化
尽量指定类、方法的final修饰符为类指定final修饰符可以让类不可以被继承,为方法指定final修饰符可以让方法不可以被重写。如果指定了一个类为final,则该类所有的方法都是final的。java编译器会寻找机会内联所有的final方法,内联对于提升java运行效率作用重大。尽量在合适的场合使用单例避免过多地创建对象,尽量重用对象使用数据库连接池和线程池...原创 2015-11-05 11:25:47 · 294 阅读 · 0 评论 -
mac设置jdk环境变量
cd ~touch .bash_profilevi .bash_profileJAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/HomePATH=$JAVA_HOME/bin:$PATH:.CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.ex...原创 2018-07-09 22:32:13 · 165 阅读 · 0 评论 -
Java垃圾回收机制
Java在内存中的状态Person.javapackage bean;public class Person { String name; Person friend; public Person() { } public Person(String name) { this.name = name; }}Test.javap原创 2015-08-05 10:23:31 · 295 阅读 · 0 评论 -
Java抽象类和接口的区别
抽象类如果一个类含有抽象方法,则称这个类为抽象类。不能用抽象类创建对象。抽象类就是为了继承而存在的。抽象类和普通类一样,可以拥有成员变量和普通的成员方法。抽象类和普通类的区别:1.抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类无法实现该方法),缺省情况下默认为public。2.抽象类不能用来创建对象。3.如果一个类继承原创 2015-09-30 11:03:39 · 245 阅读 · 0 评论 -
Java常用类
StringBuffer是线程安全的,StringBuilder不是线程安全的。String和StringBuffer的区别1.String类对象为不可变对象,一旦修改了String对象的值,隐式地重新创建了一个新的对象,释放原String对象,StringBuffer类对象为可修改对象,可以通过append()方法修改值。2.StringBuffer类的对象性能高于Strin原创 2015-07-29 21:06:39 · 225 阅读 · 0 评论 -
Java实用片段
向文件末尾添加内容BufferedWriter out = null; try { out = new BufferedWriter(new FileWriter(”filename”, true)); out.write(”aString”); } catch (IOException e) { // error processing code原创 2015-07-12 09:13:23 · 289 阅读 · 0 评论 -
反射
try { //动态加载类 Person p = (Person) Class.forName("entity.Person").newInstance(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (InstantiationException e) { e.printSt原创 2015-08-02 11:18:00 · 241 阅读 · 0 评论 -
Java调试方式
Java调试方式原创 2015-08-14 17:18:58 · 327 阅读 · 0 评论 -
HashMap原理
HashMap底层就是一个数组结构,数组中的每一项是一个链表。原创 2015-08-03 15:24:02 · 280 阅读 · 0 评论 -
Java集合小结
//Java去除List中的重复元素public static void removeDuplicate(List list){HashSet h=new HashSet(list);list.clear();list.addAll(h);System.out.println(list);}原创 2015-08-04 22:08:49 · 267 阅读 · 0 评论 -
Java高级面试题
可变参数允许调用参数数量不同的方法public int sum(int... numbers) { int sum = 0; for (int number: numbers) { sum += number; } return sum;}example.sum(1, 4, 5) //10example.sum() //0原创 2015-08-05 10:10:40 · 265 阅读 · 0 评论 -
Java IO
Java IO使用设计模式,装饰模式和适配器模式。原创 2015-08-05 21:31:48 · 230 阅读 · 0 评论 -
Java集合框架
泛型。添加其他类型的元素,编译时报错,避免运行时出现类型转换异常。代码整洁,不需要使用显示转换和instanceOf操作符。Iterator和ListIterator的区别(1)Iterator遍历Set和List,ListIterator只能遍历List。(2)Iterator只能向前遍历,ListIterator可以双向遍历。(3)ListIterator增加了功能,比原创 2015-07-24 20:46:02 · 240 阅读 · 0 评论 -
Hibernate、MyBatis的比较
Hibernate是ORM框架,MyBatis是“Sql Mapping”的ORM实现。Hibernate支持跨数据库平台,可移植性好,MyBatis不支持跨数据库平台。Hibernate查询默认将表中所有字段查询出来,性能较低。MyBatis的sql是手动编写的,可以按需指定查询的字段。Hibernate拥有完整的日志系统,MyBatis本身不支持日志,使用log4j进行日志记录原创 2015-08-17 11:20:48 · 219 阅读 · 0 评论 -
Java代码基础
HashMap数据类型不能使用基本数据类型。原创 2015-09-11 09:45:42 · 271 阅读 · 0 评论 -
Eclipse设置默认编码
Window->Preferences->General->Workspace Text file encoding修改为UTF-8Window->Preferences->General->Content Types->Text Java Source File Default encoding修改为UTF-8Window->Preferences-原创 2015-02-06 11:32:09 · 389 阅读 · 0 评论