java 之路
文章平均质量分 66
记录自己学习java遇到的大大小小的坑
小辣抓
<WEB /> Developer
展开
-
JVM的内存划分
JVM的内存区域划分 学过C语言的朋友都知道C编译器在划分内存区域的时候经常将管理的区域划分为数据段和代码段,数据段包括堆、栈以及静态数据区。那么在Java语言当中,内存又是如何划分的呢? 由于Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域划分。在讨论JVM内存区域划分之前,先来看一下Java程序具体执行的过程:转载 2017-11-07 23:20:01 · 292 阅读 · 0 评论 -
三角矩阵压缩
三角矩阵压缩关于三角矩阵的描述是,其非0元素呈三角状排列,三角矩阵又分上三角矩阵和下三角矩阵,如果我们用二维数组来储存三角矩阵的话,0元素会浪费很多的空间,因此我们可以用一维数组把矩阵进行压缩,下面给出一个java压缩下三角矩阵的例子:package com.bikeqx.main;public class Main { public static void main(St...原创 2018-03-16 13:10:32 · 2215 阅读 · 0 评论 -
java Class对象详解
要怎样在java里来使用一个类,首先必须先把类的.class字节码文件加载进来,然后再进行连接对该类里的域分配内存,最后再调用构造器,如果该类有基类的话,会先去调用基类的构造器,总的来说,分为以下三个步骤。1.根据环境变量找到并加载.class文件 2.为该类的非编译时常量分配内存 3.调用该类的构造器java里的所有类都有一个Class对象,通过这个Class对象我们能够获取此类的各种信息。原创 2016-10-16 17:33:12 · 800 阅读 · 0 评论 -
Java空对象设计模式
有时候我们的代码中为避免 NullPointerException 会出现很多的对Null的判断语句,而这些语句一旦多起来,我们的代码就会变的惨不忍睹,因此我们引入了空对象模式(null object pattern)以此来使我们的代码变的更优雅一点。下面来看一下空对象模式的大概视图为了方便我这里就直接用手写的了,大家谅解一下:) ,凑合着看吧假如我们需要查询某个学生的信息,我们输入学号来原创 2016-10-17 10:37:05 · 1132 阅读 · 0 评论 -
JDBC浅析
今天简单的说一下jdbc,本来这玩意儿也很简单。大家只需要记住其中的几个重要的类就行了,它们都在sql包里。今天主要是拿mysql来连接。先看一下主要的几个类吧。1.Conenction2.Statement3.ResultSet废话不多说我直接上代码了,因为实在很简单import java.sql.*;//Java DataBase Connectivitypublic cla原创 2016-10-17 10:37:08 · 348 阅读 · 0 评论 -
Java动态代理与反射详解
首先我得先请大家不要误会,博客园说转载的文章放在文章分类里,原创的文章用随笔写,我开先还以为随笔是拿来写抒情文的(滑稽),后来才发现不是这样的,但是自己所有的文章都在文章分类里了,又懒得搬运,所以我就用js重定向了一下。所以现在标题栏里进来的都是文章分类哦,大部分都是自己原创的,转载会注明转载的url。废话不多说,今天我想来聊一下java里的反射和动态代理的问题,因为这两个东西实在撩人,而且动态原创 2016-10-17 10:37:10 · 678 阅读 · 0 评论 -
java 如何用pattern 和 Matcher 来使用正则表达式
java的regex库java里预留了一个regex库,方便于我们在java里操作正则表达式,或者用它来匹配字符串。其中比较常用的就是 Pattern 和 Matcher ,pattern是一个编译好的正则表达式,而Mather是一个正则表达式适配器,Mather的功能很强大,所以我们一般用pattern 来获取一个Matcher对象,然后用Matcher来操作正则表达式。先看一下这两个类的用原创 2016-10-17 10:37:13 · 1123 阅读 · 0 评论 -
Java 深入浅出String
StringString是一个被final修饰的类,直接继承于Object,同时也实现了charsequence接口,String被声明为final也就不可以被继承了。由于String的方法比较多,这就不一一的列出来说了。在C/C++,String通常都用字符数组代替,不例外,由于JAVA是从C++发展来的,String内部其实也是一个char[],并且在JVM启动的时候,内部就已经维护了一原创 2016-10-17 10:37:16 · 709 阅读 · 0 评论 -
java 异常链
有的时候我们会用printStackTrace来打印异常栈,有可能我们会在处理异常的时候同时又抛出一个异常。自定义两个异常class MyException1 extends Exception{ } class MyException2 extends Exception{ MyException2(Throwable throwable){ supe原创 2016-10-17 10:37:21 · 529 阅读 · 0 评论 -
Java throw throws try...catch区别
java里的异常多种多样,这是一种非常有用的机制,它能帮助我们处理那些我们未知的错误,在java里,关于异常的有throw throws,还有一个try catch 程序块。接下来我们挨个看看这几个的作用。1.throwthrow 就是抛出一个异常,并获取这个异常的引用,这个异常会被抛到外部的环境,由外部环境进行处理class A{ public void func() throws原创 2016-10-17 10:37:24 · 633 阅读 · 0 评论 -
java 可变参数讲解
java5中新增了可变参数,这个可变参数和C语言中的用法是差不多,但实现起来却不一样。下面我们一起来看看吧。其实可变参数就是一个数组class A{ public void func(int... argum){ for(int i = 0;i < argum.length;i++){ System.out.println(argum[i]);原创 2016-10-17 10:37:26 · 333 阅读 · 0 评论 -
Java 继承内部类
大家有没有想过内部类究竟能不能被继承呢?public class Main { public static void main(String[] args){ Outer outer = new Outer(); Extender extender = new Extender(outer); }}class Outer{ class原创 2016-10-17 10:37:34 · 479 阅读 · 0 评论 -
java 多重继承
生活中有没有这样一种例子,有一样东西既是一种东西,又可以是另一种东西,比如平板电脑,它既可以实现手机的功能,又可以实现电脑的功能,这正好就体现了多重继承了。先来声明一个手机的抽象类abstract class Phone{ abstract void call(); abstract void watchMovie(); abstract void playGames(原创 2016-10-17 10:37:37 · 465 阅读 · 0 评论 -
java 解析xml
xml是一种可扩展的标记语言,可以用来存储和传输数据。在java里面我们可以调用相关的方法来访问到它。package com.bikeqx.test;import java.io.IOException;import javax.xml.parsers.*;import org.w3c.dom.*;import org.xml.sax.SAXException;public c原创 2016-10-17 10:37:39 · 375 阅读 · 0 评论 -
java 工厂模式和内部类的完美结合
package com.bikeqx.test;public class Main{ public static void apply(ServiceFactory sf){ Service s = sf.getService(); s.method1(); s.method2(); } public static voi原创 2016-10-17 10:37:42 · 792 阅读 · 0 评论 -
java 里的内部类
java里的内部类通常能帮我们隐藏一些具体实现,体现良好的封装效果。内部类又分几种:1.普通内部类2.局部内部类3.匿名内部类4.静态内部类普通内部类先来看第一种普通的内部类,这种内部类就非常简单了,就是将一个类的声明放在另一个类的内部class Outer{ //外部类 class Inner{ //内部类 }}这样的话就可以声明出一个原创 2016-10-17 10:37:44 · 430 阅读 · 0 评论 -
java 工厂设计模式
工厂模式:主要用来实例化有共同接口的类,工厂模式可以动态决定应该实例化那一个类。工厂模式的形态工厂模式主要用一下几种形态:1:简单工厂(Simple Factory)。2:工厂方法(Factory Method)。3:抽象工厂(Abstract Factory)。简单工厂(Simple Factory)又叫静态工厂,是工厂模式三中状态中结构最为简单的。主要有一个静态方法,用来接受参数,并根据参数来原创 2016-10-17 10:37:47 · 874 阅读 · 1 评论 -
java 策略设计模式
在软件开发中也常常遇到类似的情况,实现某一个功能有多种算法或者策略,我们可以根据环境或者条件的不同选择不同的算法或者策略来完成该功能。如查找、排序等,一种常用的方法是硬编码(Hard Coding)在一个类中,如需要提供多种查找算法,可以将这些算法写到一个类中,在该类中提供多个方法,每一个方法对应一个具体的查找算法;当然也可以将这些查找算法封装在一个统一的方法中,通过if…else…或者case等原创 2016-10-17 10:37:49 · 927 阅读 · 0 评论 -
java的组合和继承
其实我第一次学习java 的时候根本没有听说过组合这个名词,老师也更没有讲解过,我一直以为是我自己落掉了什么知识点,其实不是的,组合这个名词暂且把它定义为一个思维性的东西吧,相信读者都接触过了,但是并不知道它还有这个名字。其实所谓的组合就是创建一个新类去调用已经创建并且调试好的类,那么这个新类就可以把它叫做是一个组合例如我创建一个Peoplepublic class People {原创 2016-10-17 10:37:52 · 428 阅读 · 0 评论 -
java 代理设计模式
首先代理(deleration)是什么,在日常生活中我们有很多这种的例子,比如你上个QQ,各种空间被什么代理刷屏,对的,代理不是生产产品的商家,也不是进购产品的卖家,他们只是帮别人卖东西,这就相当于一个第三方关系的存在,而在java里,也有这么一种东西。在我们使用继承的时候,可以感觉很方便,并且可以感受到java复用的精髓,而在享受这种便利的同时,我们还是将基类的所有方法全部暴露了出来,那么有没原创 2016-10-17 10:37:55 · 489 阅读 · 0 评论 -
java static关键字
最近学习jsp才发现自己的java基础不够牢固,于是执笔对java重新来过,温习一下这个强大的面向对象的语言。今天看到static关键字,感觉自己掌握的也不牢靠,于是查阅了很多的资料来写下这篇文章,一方面也是为java奋斗小生写的指示牌,另一方面也是为了巩固自己的知识。static表面看起来就可以看出其的作用所在,那就是静态,在java里,可以用它进行三种形式的修饰。1、修饰字段2、修饰方原创 2016-10-17 10:37:57 · 565 阅读 · 0 评论 -
依赖注入(DI)和控制反转(IOC)
首先要解决的两个问题。1.什么是控制反转和依赖注入2.为什么我们需要控制反转和依赖注入什么是控制反转和依赖注入控制反转(Inversion of control) 是一种解耦的思想,它顾名思义,就是控制权的转移,比如项目经理让你改需求,这里就发生了控制权的转移,主要有三步:1.项目经理要求你添加功能 (这时,控制权在项目经理)2.你接到通知后开始添加功能需求 (控制权在你手上)3.交付需求成品(控制原创 2017-08-02 12:50:36 · 4563 阅读 · 0 评论