web之家  

随笔分类 -  Java基础

  • java去任意范围的随机数
    摘要:一、java.uitl.Randomrandom.nextInt(20),任意取[0,20)之间整数,其中0可以取到,20取不到二、取某个范围的任意数public static String getRandom(int min, int max){Random random = new Random 阅读全文
    posted @ 2017-08-02 10:11 路修远而求索 编辑
  • 深入理解JVM之JVM内存区域与内存分配
    摘要:前言:这是一篇关于JVM内存区域的文章,由网上一些有关这方面的文章和《深入理解Java虚拟机》整理而来,所以会有些类同的地方,也不能保证我自己写的比其他网上的和书本上的要好,也不可能会这样。写博客的目的是为了个人对这方面自己理解的分享与个人的积累,所以有写错的地方多多指教。 看到深入两字,相信很多的 阅读全文
    posted @ 2017-07-19 18:08 路修远而求索 编辑
  • Java类加载机制
    摘要:一、Java类加载机制 1.概述 Class文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象,通过该元信息对象可以获知Class的结构信息:如构造函数,属性和方法等,Java允许用户借由这个Class相关的元信息对象间接调用Class对象的功能。 虚拟机把描述类的数据从cla 阅读全文
    posted @ 2017-07-19 18:06 路修远而求索 编辑
  • 线程的通俗讲解
    摘要:为什么线程a的代码可以访问在线程b中实例化的对象c? 答案是:所有Java对象是在【堆】上分配的,而堆是所有线程可见的,只要线程a握有c对象的引用r,则通过r调用c的方法x完全是可行的,只不过这样一来,方法x就不是运行在线程b上,而是线程a上了! 其实,类(方法和数据)跟线程,一毛钱关系都没有。可以 阅读全文
    posted @ 2017-07-19 17:33 路修远而求索 编辑
  • java的动态代理原理
    摘要:之前虽然会用JDK的动态代理,但是有些问题却一直没有搞明白。比如说:InvocationHandler的invoke方法是由谁来调用的,代理对象是怎么生成的,直到前几个星期才把这些问题全部搞明白了。 废话不多说了,先来看一下JDK的动态是怎么用的。 Java代码 package dynamic.pr 阅读全文
    posted @ 2017-07-19 15:06 路修远而求索 编辑
  • 构造函数参数new class[0]的作用
    摘要:new Class[0];就是传一个长度为1的Class数组过去。内容为null。 new Class[0]表示有零个元素的Class数组,即空数组,与传入null结果是一样的,都表示取得无参构造方法。 但是为什么传入它呢,不直接传入null呢? 很简单,如果你传入null,方法中有如下的循环:fo 阅读全文
    posted @ 2017-07-19 14:56 路修远而求索 编辑
  • 反射:newInstance()的使用方式
    摘要:通过反射创建新的类示例,有两种方式: Class.newInstance() Constructor.newInstance() 以下对两种调用方式给以比较说明: Class.newInstance() 只能够调用无参的构造函数,即默认的构造函数; Constructor.newInstance() 阅读全文
    posted @ 2017-07-19 14:39 路修远而求索 编辑
  • web.xml中的<jsp-config>的用法详解
    摘要:<jsp-config> 包括<taglib> 和<jsp-property-group> 两个子元素。 其中<taglib>元素在JSP 1.2时就已经存在;而<jsp-property-group>是JSP 2.0 新增的元素。<jsp-property-group>元素主要有八个子元素,它们分 阅读全文
    posted @ 2017-07-18 17:06 路修远而求索 编辑
  • java的桥接模式
    摘要:http://blog.csdn.net/jason0539/article/details/22568865 http://www.cnblogs.com/V1haoge/p/6497919.html http://blog.csdn.net/caihongdao123/article/detai 阅读全文
    posted @ 2017-07-17 17:32 路修远而求索 编辑
  • java的clone()的使用
    摘要:clone()方法的约定 首先明确的是clone()是object的方法。Cloneable接口没有任何方法,它只起到标识的作用。(java的原型模式有用到) Cloneable接口的目的是作为对象的一个混合接口,表明这样的对象允许克隆(clone),但是这个接口却没有定义clone(),这是它的缺 阅读全文
    posted @ 2017-07-17 16:30 路修远而求索 编辑
  • DataInputStream和DataOutputStream
    摘要:1.有时没有必要存储整个对象的信息,而只是要存储一个对象的成员数据,成员数据的类型假设都是Java的基本数据类型,这样的需求不必使用到与Object输入、输出相关的流对象,可以使用DataInputStream、DataOutputStream来写入或读出数据。下面是一个例子:Java代码packa 阅读全文
    posted @ 2017-07-17 13:10 路修远而求索 编辑
  • Java对象序列化详解
    摘要:深入理解Java对象序列化 深入理解Java对象序列化 1. 什么是Java对象序列化 Java平台允许我们在内存中创建可复用的Java对象,但一般情况下,只有当JVM处于运行时,这些对象才可能存在,即,这些对象的生命周期不会比JVM的生命周期更长。但在现实应用中,就可能要求在JVM停止运行之后能够 阅读全文
    posted @ 2017-07-15 15:07 路修远而求索 编辑
  • 线程和进程的深入解读
    摘要:自己理解: 进程是操作系统分配资源的最小单位,线程是cpu计算的一种方式,是一种最优方式,可以很好的实现cpu最大化的运行和程序的正常话。 关于进程和线程,大家总是说的一句话是“进程是操作系统分配资源的最小单元,线程是操作系统调度的最小单元”。这句话理论上没问题,我们来看看什么是所谓的“资源”呢。 阅读全文
    posted @ 2017-07-14 23:24 路修远而求索 编辑
  • java线程基本原理
    摘要:1、线程池简介: 多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。 假设一个服务器完成一项任务所需时间为:T1 创建线程时间,T2 在线程中执行任务的时间,T3 销毁线程时间。 如果:T1 + T3 远大于 T2,则可以采用线程池,以提 阅读全文
    posted @ 2017-07-14 22:52 路修远而求索 编辑
  • Java多线程运行机制的基本原理
    摘要:Java多线程运行机制的基本原理 进程和线程的区别 进程 进程是一个程序执行的实例,比如说我们打开10个IE浏览器窗口,那么就有10个进程开启。一个进程可以同时被运行若干次,进程是CPU进行资源分配和调度的基本单位。 线程 线程是比进程更小的运行单位,一个进程只少有一个(主线程)或多个线程,每个线程 阅读全文
    posted @ 2017-07-14 22:50 路修远而求索 编辑
  • JAVA IO中的设计模式
    摘要:JAVA IO中的设计模式 在java语言 I/O库的设计中,使用了两个结构模式,即装饰模式和适配器模式。 在任何一种计算机语言中,输入/输出都是一个很重要的部分。与一般的计算机语言相比,java将输入/输出的功能和使用范畴做了很大的扩充。因此输入输出在java语言中占有极为重要的位置。java语言 阅读全文
    posted @ 2017-07-14 17:45 路修远而求索 编辑
  • Java 装饰者模式
    摘要:Java 装饰者模式 装饰模式(Decorator) 装饰模式又名包装(Wrapper)模式。 装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。 装饰模式通过创建一个包装对象,也就是装饰,来包裹真实的对象。 装饰模式以对客户端透明的方式动态地给一个对象附加上更多的责任。换言之, 阅读全文
    posted @ 2017-07-14 17:19 路修远而求索 编辑
  • java集合
    摘要: 阅读全文
    posted @ 2017-07-05 16:10 路修远而求索 编辑
  • java垃圾回收器
    摘要:垃圾收集器是回收由new出来的对象 ,而非java,new对象该怎么回收,这就有了finalize(),原理:一旦垃圾收集器准备好释放对象占用的存储空间,它首先调用 finalize(), 而且只有在下 一次垃圾收集过程中,才会真正回收对象的内存。所以如果使用finalize(),就可以在垃圾收集期 阅读全文
    posted @ 2017-07-05 15:03 路修远而求索 编辑
  • java堆和栈的区别
    摘要:Java把内存分成两种,一种叫做栈内存,一种叫做堆内存 在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用。 阅读全文
    posted @ 2017-07-05 14:42 路修远而求索 编辑