Java 基础
jianning-wu
努力过,期待中,好好工作!
展开
-
日期处理类详解
Java内存区域Java 内存区域中比较重要也是经常被提到的几部分是:程序计数器,栈(Stack),堆(Heap)和方法区,它们都定义在被称作运行时数据区(Runing Data Area)的区域中。其中程序计数器与栈(Stack)是随线程启动而生,线程结束而灭的,也就属于线程私有。而堆(Heap)和方法区是由JVM启动时创建切被所有线程共享的。程序计数器我们知道所原创 2017-06-19 16:16:01 · 470 阅读 · 0 评论 -
String+StringBuilder+StringBuffer三者的区别
这三个类之间的区别主要是在两个方面,即运行速度和线程安全这两方面。1.首先说运行速度,或者说是执行速度,在这方面运行速度快慢为:StringBuilder > StringBuffer > StringString最慢的原因:String为字符串常量,而StringBuilder和StringBuffer均为字符串变量,即String对象一旦创建之后该对象是...原创 2017-06-22 09:24:11 · 930 阅读 · 0 评论 -
StringTokenizer类常用方法大全
所有的数据和程序都是在运行数据区存放,它包括以下几部分:Stack 栈栈也叫栈内存,是Java程序的运行区,是在线程创建时创建,它的生命期是跟随线程的生命期,线程结束栈内存也就释放,对于栈来说不存在垃圾回收问题,只要线程一结束,该栈就Over。问题出来了:栈中存的是那些数据呢?又什么是格式呢?栈中的数据都是以栈帧(Stack Frame)的格式存在,栈帧是一个内存区块,是一个数据集,是原创 2017-06-20 18:18:17 · 1289 阅读 · 0 评论 -
Sting类String.format()的使用
常规类型的格式化String类的format()方法用于创建格式化的字符串以及连接多个字符串对象。熟悉C语言的同学应该记得C语言的sprintf()方法,两者有类似之处。format()方法有两种重载形式。format(String format, Object... args) 新字符串使用本地语言环境,制定字符串格式和参数生成格式化的新字符串。format(Locale l原创 2017-05-23 11:23:45 · 588 阅读 · 0 评论 -
String类常用方法大全
1.字符串的替换 1.1.replace方法String string1="Hello Word"; String result1=string1.replace("Hello","你好"); String result2=string1.replace("abc","你好");Log.d("TAG","resu原创 2017-05-18 18:31:16 · 11506 阅读 · 0 评论 -
BigDecimal类详解
在开启今天的文章之前,先问大家什么是同步?如果你认为线程同步指的是多线程同时并发的运行,那么就错了,其实结合上篇文章讲到的线程安全和线程不安全来理解的线程同步与线程异步。首先同步和异步都是在多线程的环境下产生的,线程同步是线程安全的,而线程不同步则是线程不安全的,从这两句话就可以看出同步与异步是在多线程环境下的状态,而线程安全和线程不安全则是针对线程的状态而得出的结论。所以原创 2017-06-19 15:31:45 · 20667 阅读 · 0 评论 -
BigInteger类详解
今天我们就来聊一聊Java内存模型,面试中面试官会通过考察你对jvm的理解更深入得了解你的水平。如果你应聘的职位涉及系统调优,如堆大小的分配、垃圾回收机制的选择、处理内存溢出、线程死锁等,对JVM这一块知识就有更高的要求。说明:因为知识点较多,扩展开来篇幅太长,jvm系列面试题将会分解开来从内存模型,垃圾回收,类加载机制,参数调优等多个角度整理,方便大家阅读。Java 内存模型原创 2017-04-20 14:50:20 · 8344 阅读 · 3 评论 -
Random类详解
Java的垃圾回收(GC)机制主要作用于运行时数据区的哪些部分呢?JVM运行时数据区有程序计数器、虚拟机栈、本地方法栈、堆、方法区5个区域。其中前三个区域随线程的创建而创建,随线程的消亡而消亡;栈中的栈帧随着方法的进入和退出而有条不紊地执行出栈和入栈操作。因此这三个区域的不需要过多的考虑垃圾回收问题。而Java堆和方法区则不一样一个接口的多个实现类需要的内存可能不一样,一个方法中的多个分支需要的内原创 2017-04-06 11:48:44 · 6587 阅读 · 0 评论 -
Math类常用方法大全
1.简介Java的Math类封装了很多与数学有关的属性和方法。2.举例说明代码:private void mathMethod(){ /** * Math.sqrt()//计算平方根 * Math.cbrt()//计算立方根 * Math.hypot(x,y)//计算 (x的平方+y的平方)的平方根 */...原创 2018-06-12 15:18:05 · 48925 阅读 · 4 评论 -
SystemClock类常用方法大全
Activity的onNewIntent()方法何时会被调用前提:ActivityA已经启动过,处于当前应用的Activity堆栈中;当ActivityA的LaunchMode为SingleTop时,如果ActivityA在栈顶,且现在要再启动ActivityA,这时会调用onNewIntent()方法当ActivityA的LaunchMode为SingleI原创 2017-04-26 09:12:41 · 710 阅读 · 0 评论 -
System系统类常用方法大全
如下图所示,JVM类加载机制分为五个部分:加载,验证,准备,解析,初始化,下面我们就分别来看一下这五个过程。加载加载是类加载过程中的一个阶段,这个阶段会在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的入口。注意这里不一定非得要从一个Class文件获取,这里既可以从ZIP包中读取(比如从jar包和war包中读取),也可以原创 2017-06-27 17:22:37 · 915 阅读 · 0 评论 -
Cloneable接口使用
什么是clone方法Clone方法是可以创建对象的一种方式。使用clone方法复制对象。由于clone方法将最终将调用JVM中的原生方法完成复制也就是调用底层的c++代码,所以一般使用clone方法复制对象要比新建一个对象然后逐一进行元素复制效率要高。怎么使用clone方法首先,我们需要实现Cloneable 接口我们可以查看一下Cloneable里原创 2017-05-22 11:01:03 · 562 阅读 · 0 评论 -
equals和==的区别详解
先上一段代码代码1:int a=10;int b=10;long c=10;float d=10;double e=10.00;boolean b1=(a==b);//trueboolean b2=(a==c);//trueboolean b3=(a==d);//trueboolean b4=(a==e);//trueString s1="abc";Strin...原创 2017-07-12 08:58:20 · 457 阅读 · 0 评论 -
接口和抽象类的区别
一个类可以实现多个接口,但只能继承一个抽象类。接口中只能定义方法而不能有方法的实现,而抽象类可以选择是否实现抽象方法。接口中所有的方法都是抽象的,但抽象类可以拥有非抽象方法。接口中的基本数据类型都是static修饰的,而抽象类不是。接口不能包含静态代码块和静态方法,而抽象类可以。原创 2017-05-19 14:02:11 · 1174 阅读 · 0 评论 -
对象引用 强引用+软引用+弱引用+虚引用详解
一.垃圾回收机制1.简介垃圾回收或GC(Garbage Collection),是一种自动的存储管理机制,它是Java语言的一大特性,方便了我们这些程序员编码,把内存释放工作的压力都转让到了系统,故而是以消耗系统性能为代价的。C++编码的时候,我们需要自己实现析构函数来进行内存释放,很麻烦,而且非常容易遗漏而最终导致程序崩掉。所以Java语言就引入了自动内存管理的机制,也就是垃圾回收...原创 2017-04-26 20:35:30 · 765 阅读 · 0 评论 -
泛型使用详解
此篇讲述多线程买票小例子1.实现Runnable接口 实现多线程public class MyRunnable implements Runnable{private int ticket=6;//6张票@Overridepublic void run() {for(int i=0;i if(ticket原创 2017-05-19 11:06:19 · 468 阅读 · 0 评论 -
代码块详解
什么是代码块?在类或者方法中,直接使用{}括起来的一段代码,表示一块代码区域,代码块里变量属于局部变量,只在自已所在的区域内(前后的{})有效。根据代码块定义的位置不同,我们又分为三种形式:局部代码块:直接定义在方法内部的代码块。一般的,我们不会直接使用局部代码块的,只不过我们会结合if,while,try等关键字联合,表示一块代码区域。局部代码块原创 2017-05-23 19:40:50 · 1363 阅读 · 0 评论 -
数据结构详解
1.前序遍历前序遍历首先访问根结点然后遍历左子树,最后遍历右子树。在遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。若二叉树为空则结束返回,否则:(1)访问根结点;(2)前序遍历左子树;(3)前序遍历右子树 ;需要注意的是:遍历左右子树时仍然采用前序遍历方法。可以看出前序遍历后,遍历结果为:6312549782.中序...原创 2017-04-25 10:48:46 · 3620 阅读 · 1 评论 -
反射机制
Java的反射库是一个被精心设计的工具集,使用它编写和动态的操纵java代码。那么java的反射能做什么呢?官方的说法是能够在运行中分析类的能力,能够在运行中查看对象。官方说法很正确,反射确实是在java代码在运行状态中分析类和对象,但一般人看不懂!所以简单的说,反射就是当你找到一个类,想创建这个类的对象,使用它的方法时,却失望的发现这个类的构造方法和方法不能被直接使用。这原创 2017-04-21 17:58:15 · 1986 阅读 · 0 评论