代码改变世界

Java8 Lambda表达式

2017-12-19 14:50 by 钰火, 263 阅读, 0 推荐, 收藏, 编辑
摘要:https://github.com/mynawang/javabasic-summary/tree/master/chapter03 Lambda表达式的结构: Lambda表达式可以具有零个、一个或多个参数。 可以显式声明参数的类型,也可以由编译器自动从上下文推断参数的类型,如(int a)与(a)相同。 参数用小括号括起来,多个参数用逗号隔开,如(a, b)。 空括号... 阅读全文

synchronized的一些记录

2017-12-01 14:16 by 钰火, 193 阅读, 0 推荐, 收藏, 编辑
摘要:1、方法内的私有变量,不存在线程安全问题。非线程安全问题存在于实例变量(全局变量)中2、在方法上加synchronized表示,当第一个线程进入时方法加锁(其他方法无法调用)3、synchronized取得的锁是对象锁,而不是把一段代码或方法(函数)当作锁,所以哪个线程先执行带synchronized关键字的方法,哪个线程就持有该方法所属对象的锁Lock,那么其他线程只能呈等待状态,前提是多个线程... 阅读全文

类和实例

2017-12-01 13:57 by 钰火, 235 阅读, 0 推荐, 收藏, 编辑
摘要:面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。局部变量:在方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。成员变量:成员变量是定义在类中、方法体之外的变量。这种变量在创建对象的时候实例... 阅读全文

线程状态

2017-12-01 13:14 by 钰火, 261 阅读, 0 推荐, 收藏, 编辑
摘要:1.NEW:初始状态,线程被创建,但是还没有调用start()方法2.RUNNABLE:运行状态,Java线程将操作系统中的就绪(READY)和运行(RUNNING)两种状态笼统地称作“运行中”3.BLOCKED:阻塞状态,表示线程阻塞于锁4.WAITING:等待状态,表示线程进入等待状态,进入该状态表示当前线程需要等待其他线程做出一些特定动作(通知或中断)5.TIME_WAITING:超时等待... 阅读全文

main函数和线程的关系

2017-12-01 11:07 by 钰火, 1236 阅读, 0 推荐, 收藏, 编辑
摘要:https://github.com/mynawang/Java-Multi-Thread-Learning/blob/master/src/main/java/com/sedion/mynawang/basic/DiscoverThread.java java中运行一个main函数时,有多个其他线程也同时运行。如:Reference Handler线程,用于处理引用对象本身垃圾回收问题(软引用、... 阅读全文

线程的3种声明方式

2017-12-01 10:32 by 钰火, 926 阅读, 0 推荐, 收藏, 编辑
摘要:1.实现Runnable接口,重写run方法 实例化线程:new Thread(new MyselfThread()).start(); 2.继承Thread类,重写run方法,其实质也是实现Runnable接口 实例化线程:MyselfThread thread = new MyselfThrea 阅读全文

关于Java形参和实参的理解

2017-11-17 13:27 by 钰火, 827 阅读, 0 推荐, 收藏, 编辑
摘要:源码地址:https://github.com/mynawang/javabasic-summary/tree/master/chapter01 1.方法的形参中,java的基本数据类型是传值调用,对象引用类型是传引用。 2.当传值调用时,改变的是形参的值,并没有改变实参的值,实参的值可以传递给形参 阅读全文

JVM调优命令-jstack

2017-09-26 10:29 by 钰火, 2791 阅读, 0 推荐, 收藏, 编辑
摘要:jstackjstack用于生成java虚拟机当前时刻的线程快照。线程快照是当前java虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等。 线程出现停顿的时候通过jstack来查看各个线程的调用堆栈,就可以知道没有响应的线程到底在后台做什么事情,或者等待什么资源。 如果java程序崩溃生成core... 阅读全文

JVM调优命令-jinfo

2017-09-26 09:39 by 钰火, 747 阅读, 0 推荐, 收藏, 编辑
摘要:jinfoJVM Configuration info这个命令作用是实时查看和调整虚拟机运行参数。 之前的jps -v口令只能查看到显示指定的参数,如果想要查看未被显示指定的参数的值就要使用jinfo口令。【JVM配置参数调整查看】1234567891011121314151617[root@localhost bin]# jinfo -helpUsage: jinfo [option] ... 阅读全文

JVM调优命令-jhat

2017-09-25 10:06 by 钰火, 8039 阅读, 0 推荐, 收藏, 编辑
摘要:jhatJVM Heap Analysis Tool命令是与jmap搭配使用,用来分析jmap生成的dump,jhat内置了一个微型的HTTP/HTML服务器,生成dump的分析结果后,可以在浏览器中查看。在此要注意,一般不会直接在服务器上进行分析,因为jhat是一个耗时并且耗费硬件资源的过程,一般把服务器生成的dump文件复制到本地或其他机器上进行分析。【内存分析】123456789101112... 阅读全文