- 博客(67)
- 收藏
- 关注
原创 jvm 字节码的执行
javap简单的字节码执行过程常用的字节码使用ASM生成Java字节码JIT(及时编译)及其相关参数javap class文件的反汇编工具package javap;/** * @Package Name : ${PACKAG_NAME} * @Author : dongfucai@meituan.com * @Creation Date : 2018年06月30日下午5:55 * ...
2018-06-30 18:57:45 285
转载 栈帧、局部变量表、操作数栈
1.定义 栈帧(stack frame)是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈的栈元素。栈帧存储了方法的局部变量表、操作数栈、动态连接和方法返回地址等信息。 每一个方法从调用开始到执行完成的过程,就对应着一个栈帧在虚拟机栈里面从入栈到出栈的过程。 对于执行引擎来说,活动线程中,只有栈顶的栈帧是有效的,称为当前栈帧,这个栈帧所关联...
2018-06-30 18:48:27 770
转载 java中注解(Annotation)的理解
文章开头先引入一处图片。 这处图片引自老罗的博客。为了避免不必要的麻烦,首先声明我个人比较尊敬老罗的。至于为什么放这张图,自然是为本篇博文服务,接下来我自会说明。好了,可以开始今天的博文了。Annotation 中文译过来就是注解、标释的意思,在 Java 中注解是一个很重要的知识点,但经常还是有点让新手不容易理解。我个人认为,比较糟糕的技术文档主要特征之一就是:用专业名词来介绍专业名词。比如:J...
2018-06-30 13:09:09 271
原创 java的反射 demo5 为什么要反射与模版
package com.imooc.reflect;/* 为什么要用方法 的发射 */import java.lang.reflect.Method;import java.util.ArrayList;/* 通过 Class 和Method 来认识范型的本质 */public class MethodDemo4 { public static void...
2018-06-30 12:36:28 225
转载 为什么要反射?
作者:老顽童周伯通链接:https://www.zhihu.com/question/24304289/answer/147529485来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 这里我不打算像别的答案上来就上代码,给你讲怎么用,是啥是啥,老实说那样比较像培训java程序员的感觉,一点对知识的好奇心都没有,如果是想速成反射的,大家看别的答案吧。...
2018-06-30 12:33:17 10413 9
原创 java的反射 demo4 反射的方法来调用函数
package com.imooc.reflect;import java.lang.reflect.Method;public class MethodDemo1 { public static void main(String[] args){ // 获取 print(int, int) 方法 // 1 要获取一个方法就是获取类的信息,获取...
2018-06-30 12:04:38 557
原创 java 中的反射demo3 获取类的方法,字段,构造函数
1 获取类的方法package com.imooc.reflect;public class ClassDemo3 { public static void main(String[] args){ String str="hellworld"; ClassUtil.printClassMessage(str); // 任何类的信息都...
2018-06-30 12:00:33 140
原创 java 中的反射demo2
package com.imooc.reflect;/* 4 基本的数据类型 void 关键字 都存在类类型 5 Class 类的基本信息 */public class ClassDemo2 { public static void main(String[] arg) { Class c1 = int.class;// int 的类类型 Class...
2018-06-30 11:50:24 101
原创 java 中的反射demo1
package com.imooc.reflect;/*Class也是类,它的实例对象是一个个的类,这一个个的类都有类名啊,都有方法啊,都有属性啊等等,所以就抽象出了一个Class类来管理这些一个个类的相关。因为一个程序中类肯定很多,所以用Class类来管理 *//*1 Class 类 普通的数据类型 不是对象 static 成员不是对象 *//* 类是谁的对象...
2018-06-30 11:47:39 127
转载 jvm是什么?
说明:做java开发的几乎都知道jvm这个名词,但是由于jvm对实际的简单开发的来说关联的还是不多,一般工作个一两年(当然不包括爱学习的及专门做性能优化的什么的),很少有人能很好的去学习及理解什么是jvm,以及弄清楚jvm的工作原理,个人认为这块还是非常有必要去认真了解及学习的,特别是刚入门或入门不久的java开发来说,这是java的基石。JVM(Java Virtual Machine,Java...
2018-06-30 10:51:05 147
原创 mysql 中的锁
1、delete from A where Id = 1;Id是主键,仅锁住Id为1 的哪一行2、delete from A where value = 1;value是二级索引,锁住所有value为1的行,在对数据进行操作。3、delete from A where desc = 1;desc没有索引,锁住所有扫描过的行...
2018-06-29 17:48:52 231
原创 mac快捷键chrome
应用类型快捷键功能快捷键chrome 和item窗口新建命令command + t各个应用的tag切换Ctrl+tab/shift+option+{,}chrome 和item窗口切换至指定的标签页command+数字chrome历史上一次开始的页面Command + shift +t:chrome关闭当前页面command + w ...
2018-06-29 13:32:24 468
原创 slf4j中的Logger 使用占位符{} 来传入参数记录日志信息
首先要导入 slf4j包中的2个类import org.slf4j.Logger;import org.slf4j.LoggerFactory; 注意包不要引入错再定义如下private final static Logger LOG= LoggerFactory.getLogger(MyClass.class); 再使用if(LOG.isDebugEnabled()){ ...
2018-06-28 13:17:24 7822
原创 搜索文件夹中的文本中的字符串
使用命令grep -rl 'abc' /(有引号)-r 选项表示递归(recursive)遍历所有子目录-l 选项表示只列出文件名/ 是根文件夹, 表示全盘
2018-06-27 18:13:13 822
转载 github 上删除文件夹
删除github上文件夹的两种方式(解决已经加入ignore的文件夹无法从远程仓库删除的问题)如果此文件夹已被加入git追踪,那么删除方法很简单,只需要将此文件夹删掉,然后提交一下就可以了如果次文件夹曾经被加入过git追踪,现在被加入.gitignore里了,但是github上还有此文件夹。对于这种情况,稍微有点复杂,因为已经加入.gitignore的文件或文件夹,无法对其进行提交了,哪怕是将其删...
2018-06-27 17:31:26 283
转载 google guava工具包 checkNotNull的作用 , checkState
checkNotNull 源码如下:Preconditions.checkNotNull(object);public static <T> T checkNotNull(T reference) { if (reference == null) { throw new NullPointerException(); } return reference;}使用 ...
2018-06-26 14:48:31 936
原创 jsp 表单 post
如何去调试一个html<%@ page contentType="text/html;charset=UTF-8" language="java" %><% String path=request.getContextPath();%><html><head> <title>Title</
2018-06-26 11:18:13 251
转载 查看JAVA的class二进制文件的方法
hexdump -C filename可以查看二进制文件。比如java的Test.javapublic class Test{ public static void main(String[] args){ System.out.println("Hello World!"); }}1、hexdumpjavac Test.java之后生成的Test.class,可...
2018-06-24 17:20:16 5848 5
原创 锁 对象头Mark
MarkWord,对象头的标记,32位描述对象的hash、锁信息,垃圾回收标记,年龄–指向锁记录的指针–指向monitor的指针–GC标记–偏向锁线程ID偏向锁大部分情况是没有竞争的,所以可以通过偏向来提高性能所谓的偏向,就是偏心,即锁会偏向于当前已经占有锁的线程将对象头Mark的标记设置为偏向,并将线程ID写入对象头Mark只要没有竞争,获得偏向锁的线程,在将来进入同步块,不需要做同步当其他线程...
2018-06-24 14:37:13 515
原创 锁
线程安全package metux;import java.util.ArrayList;import java.util.List;/** * @Package Name : ${PACKAG_NAME} * @Author : dongfucai@meituan.com * @Creation Date : 2018年06月23日下午5:31 * @Function : to...
2018-06-23 20:03:36 196
转载 git 提交多个文件
git 一次 add 多个文件的方法git add file_1 file_2 file_31多个文件用 空格 隔开git 提交 文件夹的方法git add catalog_name
2018-06-22 18:08:39 17286
转载 git 的撤销操作
撤消操作任何时候,你都有可能需要撤消刚才所做的某些操作。接下来,我们会介绍一些基本的撤消操作相关的命令。请注意,有些撤销操作是不可逆的,所以请务必谨慎小心,一旦失误,就有可能丢失部分工作成果。修改最后一次提交有时候我们提交完了才发现漏掉了几个文件没有加,或者提交信息写错了。想要撤消刚才的提交操作,可以使用 --amend 选项重新提交:$ git commit --amend此命令将使用当前的暂...
2018-06-22 15:27:19 173
转载 Spring MVC 中 HandlerInterceptorAdapter的使用
一般情况下,对来自浏览器的请求的拦截,是利用Filter实现的,这种方式可以实现Bean预处理、后处理。 Spring MVC的拦截器不仅可实现Filter的所有功能,还可以更精确的控制拦截精度。 Spring为我们提供了org.springframework.web.servlet.handler.HandlerInterceptorAdapter这个适配器,继承此类,可以非常方便的实现自己的拦...
2018-06-22 12:02:10 119
原创 pidstat 命令
–细致观察进程–需要安装• sudoapt-get install sysstat–监控CPU–监控IO–监控内存-p 指定进程–u监控CPU每秒采样一共3次-d 表示监控线程
2018-06-22 00:10:36 331
原创 uptime
23:57 up 10 days, 12:40, 2 users, load averages: 2.58 2.75 2.91–系统时间–运行时间•例子中为7分钟–连接数•每一个终端算一个连接–1,5,15分钟内的系统平均负载•运行队列中的平均进程数...
2018-06-21 23:58:28 1207
转载 crontab 命令
19. crontab 定时任务通过crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。这个命令非常适合周期性的日志分析或数据备份等工作。19.1. 命令格式crontab [-u user] file crontab [-u user] [ -e | -l | -r ]19.2. 命令参数-...
2018-06-21 15:23:56 226
转载 mybatis之<trim prefix="" suffix="" suffixOverrides="" prefixOverrides=""></trim>的含义
1.<trim prefix="" suffix="" suffixOverrides="" prefixOverrides=""></trim>prefix:在trim标签内sql语句加上前缀。suffix:在trim标签内sql语句加上后缀。suffixOverrides:指定去除多余的后缀内容,如:suffixOverrides=",",去除tri
2018-06-21 14:42:53 4621
转载 动态SQL之<where>、<if>条件判断
错误方式一: 在mybatis的动态sql语句中使用<if>标签可以判断sql中的条件是否成立。 <select id="getPerson" resultType="com.lzj.bean.Employee"> select * from tbl_employee where <if test="id!...
2018-06-21 14:41:30 3905
转载 Linux的编码及编码转换
如果你需要在Linux中操作windows下的文件,那么你可能会经常遇到文件编码转换的问题。Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8。下面介绍一下,在Linux中如何查看文件的编码及如何进行对文件进行编码转换。 查看文件编码在Linux中查看文件编码可以通过以下几种方式:1.在Vim中可以直接查看文件编码:set fileencoding即可显示文件编...
2018-06-20 15:11:26 285
原创 vim 的使用
显示两个不同的文件;或者同时显示一个文件的两个不同地方;又或者并排比较两个文件。这一切都可以通过分割窗口实现。打开新窗口最简单的命令如下::split (水平分割) || :vsplit (垂直分割)可以简写sp 或者vs这个命令把屏幕分解成两个窗口并把光标置于上面的窗口中.CTRL-W w 命令可以用于在窗口间跳转。如果你在上面的窗口,它会跳转到下面的窗口,如果你在下面的窗口,它会跳转到上面的窗...
2018-06-20 15:01:51 167
原创 jar 包冲突 java.lang.NoSuchFieldError
java.lang.NoSuchFieldError: INSTANCE异常,可能是jar包冲突了。我遇到的情况是maven里引入了一个JAR,而我又在lib里面引入了这个jar,并且版本还不相同,就出了这个错。解决办法:1mvn dependency:tree -dverbose2(1) 安装使用插件 maven Helper 插件, 重新启动idea 后插件才能生效(2)在IntelliJ...
2018-06-20 11:59:14 28344
原创 什么是类装载器ClassLoader
----------------------类的查找和加载以及查找路径------------------当前找不到这个类的时候,会请求 父类去加载--------------------------类加载的例子如何让启动classload 去加载 app classload?...
2018-06-20 10:01:28 815
转载 IDEA 的基本调试
在调试代码的时候,你的项目得debug模式启动,也就是点那个绿色的甲虫启动服务器,然后,就可以在代码里面断点调试啦。下面不要在意,这个快捷键具体是啥,因为,这个keymap是可以自己配置的,有的人keymap是mac版的,有的是Windows版的。我的就是Windows,而且修改keymap为eclipse的keymap,因为我算是eclipse转过来的吧。下面直接看图,详细解释,每一个按钮(按钮...
2018-06-19 21:38:12 250
转载 MyBatis中关于resultType和resultMap的区别
MyBatis中关于resultType和resultMap的区别 MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返回类型的(对应着我们的model对象中的实体),而resultMap则是对外部ResultMap的引用(提前定义了db和model之间的隐射key-->value关系),但是re...
2018-06-19 21:33:02 112
原创 去掉最后一个字符
StringBuffer stringBuffer1 = new StringBuffer() ;for (UserResponse supper:responses1){ stringBuffer1.append(supper.getId()+",");}stringBuffer.toString().substring(0,stringBuffer.toString().le...
2018-06-19 18:17:15 425
原创 IDEA 中的调试错误
在IDEA中 如果知道哪个函数有问题 就 step into 进去 这个函数,引用的可能是第三方包,打开下面结构的参数 不一样的颜色的信息 ,就可能会看到出现的错误的信息,...
2018-06-15 11:34:03 859 1
原创 股票买卖2次
Example 1:Input: [3,3,5,0,0,3,1,4]Output: 6Explanation: Buy on day 4 (price = 0) and sell on day 6 (price = 3), profit = 3-0 = 3. Then buy on day 7 (price = 1) and sell on day 8 (price ...
2018-06-14 00:40:10 791
原创 股票可以买卖多次
class Solution {public: int maxProfit(vector<int>& prices) { int size = prices.size(); if(size == 0){ return 0; }// // 交易次数没有限制 就是所有 下一个工作日的价格大于上一个...
2018-06-14 00:17:43 362
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人