JAVASE
Crystal_xing
温不增华,寒不改叶
展开
-
java - 等待子线程执行结束再继续执行
用CountDownLatch, 在主线程里用 latch.await() 挂起主线程,等待子线程执行完毕再继续执行原创 2022-07-07 15:50:03 · 621 阅读 · 0 评论 -
Java中的Functor与monad
原文链接作者:Tomasz Nurkiewicz 译者:simonwang这篇文章最初是我们的Reactive Programming with RxJava一书中的附录,然而提到monad即使它与响应式编程有关,但也只是一点点,所以我决定把它单独拿出来出一篇博客。我意识到对monad一边解释一边纠正,对我而言这就像是在编程博客上使用“Hello World”一样(是对是错拉出来溜溜)。而...转载 2019-06-10 09:42:42 · 352 阅读 · 0 评论 -
记录下a++和++a的区别
a++和++a都是a自加1的意思,唯一不同的是,a++是后置处理,比如c=a++,先执行c=a,再执行a++,同理c=++a是前置处理,先执行++a,再执行c=a原创 2015-11-03 16:28:37 · 398 阅读 · 0 评论 -
Java中IO流,输入输出流概述与总结
总结的很粗糙,以后时间富裕了好好修改一下。1:Java语言定义了许多类专门负责各种方式的输入或者输出,这些类都被放在java.io包中。其中,所有输入流类都是抽象类InputStream(字节输入流),或者抽象类Reader(字符输入流)的子类;而所有输出流都是抽象类OutputStream(字节输出流)或者Writer(字符输出流)的子类。【首先需要明白的是:流是转载 2017-07-30 17:52:40 · 444 阅读 · 0 评论 -
java 类加载机制
类加载机制JVM把class文件加载的内存,并对数据进行校验、转换解析和初始化,最终形成JVM可以直接使用的Java类型的过程就是加载机制。类从被加载到虚拟机内存中开始,到卸载出内存为止,它的生命周期包括了:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)、转载 2015-10-13 10:43:16 · 379 阅读 · 0 评论 -
BufferedReader和BufferedWriter
java.io.BufferedReader和java.io.BufferedWriter类各拥有8192字符的缓冲区。当BufferedReader在读取文本文件时,会先尽量从文件中读入字符数据并置入缓冲区,而之后若使用read()方法,会先从缓冲区中进行读取。如果缓冲区数据不足,才会再从文件中读取,使用BufferedWriter时,写入的数据并不会先输出到目的地,而是先存储至缓冲区中。如果缓转载 2015-06-03 16:55:42 · 344 阅读 · 0 评论 -
List和ArrayList的区别
1. List是接口,List特性就是有序,会确保以一定的顺序保存元素. ArrayList是它的实现类,是一个用数组实现的List. Map是接口,Map特性就是根据一个对象查找对象. HashMap是它的实现类,HashMap转载 2015-05-21 08:55:47 · 353 阅读 · 0 评论 -
谈谈Java虚拟机——Class文件结构
大家都知道,Java之所以如此受人喜欢,很大的原因是要规于它的跨平台性。“一次编写,到处运行”,Java诞生之时曾提出的著名的宣传口号,充分表达了软件开发人员对冲破平台界限的渴求。或许大部分程序员都认为Java虚拟机执行Java程序是一件理所当然和天经地义的事,但时至今日,商业机构和开源机构已经在Java语言之外发展出一大批在Java虚拟机之上运行的语言,如Clojure、Groovy、JRu转载 2015-05-17 18:41:31 · 389 阅读 · 0 评论 -
集合框架和集合
集合框架是为表示和操作集合而规定的一种统一的标准的体系结构。任何集合框架都包含三大块内容:对外的接口、接口的实现和对集合运算的算法。java集合框架:1. 什么是框架:类库的集合2.集合框架:用来表示和操作的统一的架构,包含了实现集合的接口与类3.集合:存放数据的容器集合框架包含了两部分:一部分是接口,一部分是类4.为什么会出现接口:因为集合框架中的很多类 功能是相似的【所转载 2015-05-21 08:39:50 · 560 阅读 · 0 评论 -
C++容器 java集合
一、集合类 对象的集合,指如链表,数组,队列这一类的数据结构。在C++标准库中把这些成为Container, 在Java中称为Collection。 C++STL常用Container: vector, list, map, set, queue, stack, priority_queueJava基础类:ArrayList, HashMap, HashSet 注意:在转载 2015-05-21 08:27:48 · 483 阅读 · 0 评论 -
Java虚拟机类加载和执行机制
虚拟机的类加载和执行机制是虚拟机的最主要功能,在这里简单的对所知的内容进行一次温习,并记录以方便日后重温。 本篇主要引用《深入理解Java虚拟机——JVM高级特性与最佳实践》一书。 1、类文件结构 java虚拟机要对类文件进行加载和执行,那么必须要能够理解类文件结构,而对于虚拟机而言,平台无关性和语言无关性是其最重要的两大特征,那么就势必要对类文件结构进行规范化和结构化,这样才转载 2015-03-23 19:11:55 · 416 阅读 · 0 评论 -
java类加载机制的过程
jvm在初期是将.java文件,编译成.class文件,当程序运行的时候,Java 虚拟机就将编译生成的 . class 文件按照需求和一定的规则加载进内存,组织成为一个完整的 Java 应用程序,jvm会把每个单独的类和接口编译成一个单独的.class文件,这些文件对于 Java 运行环境来说就是一个个可以动态加载的单元。我们可以在不重新编译其它代码的情况下,只编译需要修改的单元,并把修改文件编转载 2015-03-09 21:59:53 · 297 阅读 · 0 评论 -
函数调用栈分析
转载请注明出处:http://blog.csdn.net/wangxiaolong_china 关于堆栈空间利用最核心的一点就是:函数调用栈。而要深入理解函数调用栈,最重要的两点就是:栈的结构变化,ebp寄存器的作用。首先要认识到这样两个事实:1. 一个函数调用动作可分解为:零到多个push指令(用于参数入栈),一个call指令。call指令内部其实还暗含了一个将eip返转载 2015-03-27 09:04:21 · 567 阅读 · 0 评论 -
c中和java中数组的区别
对于原语类型的数组,如int[] a,在C里面只要这样定义之后就可以用a[i]使用了,但是在JAVA里面是不行的,必须用int[] a = new int[LENGTH];来为数组分配空间。这里的a更应该看成C里面的指针,它和C里面的int* a是一样的,因为这个a(C里面的)也要先malloc一个空间之后才可以用。 对于对象数组,则要“两次分配”,如:转载 2015-03-03 14:10:35 · 646 阅读 · 0 评论 -
String args[] 和 String[] args 有什么区别
其实没什么区别的;当初我也是这样的疑问,呵呵;非要说区别就看下面:执行效果上没有不同, 但在语法意义上略有不同. 比如, String与String[], 前者叫字符串类型而后者叫字符串数组类型. String args[]单从类型上来讲属于字符串类型, 而从变量本身来讲是一个数组类型, 因此组合起来说明此变量为一个字符串类型的数组, 也就是说数组中的所有元素都为String类转载 2015-02-28 17:34:02 · 472 阅读 · 0 评论