沈超琦的博客

STAY HUNGRY,STAY FOOLISH

文章

杂谈JVM

Jvm学习总结 序 jvm之运行时内存 jvm之对象的一生 jvm之天道的发展 jvm之大并发时代 结 序 为了防止自己学完就忘记,写此博客. jvm之运行时内存 jvm的运行时内存,是学习jvm一个不错的切入点,在此一一列出: 1.虚拟机栈: 一千个人眼中有一千个哈姆雷特,一千个线程有一千个虚拟机栈,在操作系统层面看的话,用户级线程便是分着不同的栈去执行的,既然操作系统老大哥都这样,jvm的线程肯定也是一个线程一个栈了.一个虚拟机栈中又有什么呢,看看老大哥的栈中,是一个一个的栈帧,jvm自然也是栈帧了(栈帧即方法).除了栈帧,jvm还有一个小的可以忽略的程序计数器(程序计数器记录每个线程运行的位置,方便线程的切换),操作系统拥有着tcb(ThreadControllerTable),可以记录自己运行到哪儿了,所以不需要程序计数器.因此就没有这个概念了吧.那么栈帧里面又是什么呢,这里面jvm就分的很细致了,操作数栈,局部变量表,动态链接,返回地址. 操作数栈是个啥呢?操作系统中,根据指令,将需要操作的数据放入寄存器组中,之后运算出来,运算中途的数据存入寄存器里面暂存,最后要....

JAVA中关于static的继承问题

//父类 public class Father { public static String staticString="父类中的静态变量"; public String str="父类中的非静态变量"; public static void staticMethod(){ System.out.println("父类中的静态方法"); } public void nostaticMethod() { System.out.println("父类中的非静态方法"); } } //子类 public class Son extends Father { public static String staticString="子类中的静态变量"; public String str="子类中的非静态变量"; public static void staticMethod(){ System.out.println("子类中的静态方法"); } public void nostaticMethod() { System.out.println("子类中的非静态方法"); } } //子类 p....

关于for丶foreach丶iterator 迭代器

关于for丶foreach丶iterator 迭代器 1 前言: 我们在网上或者在讨论的时候往往会有这么一种说法:foreach 也是迭代器的一类,底层实现的是迭代器。但是这种说法并不严谨,也可以说这种说法对于我们正常的理解来说并不是能够完全理解。 2 结论: for 丶 foreach 丶迭代器 这三个遍历方法中 不应该将他们三种遍历方法归在一起 而是将其分成三类)——不要将foreach 归为迭代器的一种遍历 (我们一步一步来,首先来简单介绍一下这是那种方法的区别) 3 多态差别 for和foreach都需要知道自己的集合类型,甚至要知道自己集合内的元素类型,不能实现多态。( public static void main(String[] args) { int[] ints = new int[]{1, 2, 3, 4}; int[] var2 = ints; int var3 = ints.length;for(int var4 = 0; var4 < var3; ++var4) { int i = var2[var4]; System.out.println(i); ....

Groovy脚本语言分享

1 Groovy与JAVA的区别 Groovy语言一直在努力亲近Java开发人员。在设计Groovy语言的时候,我们遵循最小标新立异原则,努力让那些Java开发背景的开发者容易上手并学会。下面我们列举Groovy和Java的一些主要区别。 1 默认导入 下面的包和类是默认导入的,也就是说不必精确使用 import 语句来导入它们: java.io.* java.lang.* java.math.BigDecimal java.math.BigInteger java.net.* java.util.* groovy.lang.* groovy.util.* 2 动态方法(Multi-methods) 在Groovy里,方法的调用是在运行时动态决定。这一特性叫做运行时分发(runtime dispatch)或动态方法(multi-methods)。也就是说方法的最后调用是根据传入参数在运行时的类型所决定。在Java里,这一点是不一样的:在编译时就决定了方法的参数类型。 下面的代码,我们采用Java风格,在Groovy和Java都可以编译通过,但是运行结果不一样: int method....

Groovy基础语法

一、环境搭建 安装好JDK环境 到groovy官网下载groovySDK,解压到合适位置 groovy官网:http://www.groovy-lang.org/ 安装后的文件如上图所示,我们需要关注的是bin和doc文件夹下的内容,其它文件夹下是一些配置和groovy自带的一些jar包 配置groovy环境变量 二、与Java的不同之处 1、默认 imports 所有这些包和类都是默认导入的,您不必使用显式import语句来使用它们: ** java.io.* java.lang.* java.math.BigDecimal java.math.BigInteger java.net.* java.util.* groovy.lang.* groovy.util.* 2、运行时分派 在Groovy中,将在运行时选择将被调用的方法。 这称为运行时分派或Multi-methods。 这意味着将基于运行时参数的类型来选择方法。 在Java中,则是根据声明的类型,在编译时选择方法。 下面的代码,以Java代码编写,可以在Java和Groovy中编译,但它的行为会有所不同:....

STAY HUNGRY,STAY FOOLISH

© 2021 沈超琦的博客

Powered by Bolo
Theme self-bolo-sakura by Mashiro
浏览 31212 文章 31 评论 5
浙ICP备18010929号

主题 | Theme