java
文章平均质量分 53
ice_time1
这个作者很懒,什么都没留下…
展开
-
java 工厂模式
我写的java设计模式不会是十分官方,专业的解释,就是用比较简单的语言叙述那么ok,第一个 工厂模式 同一个接口,不同子类实现,再来一个工厂类,来这个工厂类通过你申请对象输入的不同参数在工厂内部判断new相应的对象就这一句话,你可能不是很明白,那看看下面这个例子首先我们有一个接口public interface inter { void test_原创 2015-08-07 16:46:49 · 341 阅读 · 0 评论 -
普里姆算法,克鲁斯卡尔算法
这两种算法都是得出最小生成树的算法,只不过方法不同普里姆是归并点而克鲁斯卡尔是归并边先说普里姆算法先随意选一个点加入归并点数组之中,然后选出与这个点关联的最小的权的点,输出,并把那个点也加入归并点数组之中,然后再从每一次都从归并点数组之中选一个点道不在这个数组之中的点的最小的权值,再把这个点也加入归并点数组,知道所有的点都在归并点数组之中•1. 从某顶点 u原创 2015-08-15 14:18:42 · 5777 阅读 · 1 评论 -
拓扑排序算法
拓扑排序算法就是说明aov网中前驱和后继的关系入度为0优先算法就是每次把入度为0 点去掉 还有相应的出度为0优先算法,就是上面的相反的原创 2015-08-15 14:23:03 · 356 阅读 · 0 评论 -
广度优先搜索
广度优先搜索就是一个点,把他所有的连接的点都走一遍,然后再从他所连接的点再递归出去之前写那个深搜的时候写了一个递归和一个循环,但大体思路都差不多,这个也是,所以就写一个循环吧,好理解一点伪代码:int flag = 0; // 这个就是标记量,标记有多少个已经走过了,如果这个flag == 总共的点数,那么就代表程序输出结束了对象 point原创 2015-08-14 18:23:43 · 412 阅读 · 0 评论 -
java集合类,collection,list,set,map
list数组集合,set不允许有相同的值存入,map是键值对(key--value)。list: ArrayList和LinkedList的区别:ArrayList:自动增长的数组,查询效率比较高,但是添加和删除效率比较低,如果一开始有大量的数据确定加入,而不是动态的添加,可以用ensureCapacity方法加入一下,这样效率可以高一点;LinkedList:是用双向原创 2015-08-31 17:18:55 · 616 阅读 · 0 评论 -
java中的基本类型
Java语言八种基本类型:数字类型: 字节型byte 8位 短整型short 16位 整型int 32位 长整型long 64位 单精度float 32位 双精度double 64位字符型: char 8位布尔型: boolean 8位原创 2015-08-06 11:50:33 · 361 阅读 · 0 评论 -
synchronized和lock的区别
先说一下什么是同步(synchronized和lock都是实现这个的): 每一个对象都有一个互斥的锁标记和一个锁池,哪个线程拥有锁标记哪个才能访问,没有锁标记的线程就进入锁池,保证同步代码块中只有一个线程 synchronized修饰的代码块是对括号内的对象加锁,只有拥有锁标记的线程能访问; synchronized修饰的函数方法是整个方法范围内对当前原创 2015-09-01 14:26:23 · 942 阅读 · 0 评论 -
sleep和wait的区别
如果这下面说的看不太懂,可以先去看一下上一篇可能会好一点;线程调用了wait()方法的话,该线程将会自己所有的锁标记和CPU的占用,并且进入等待池(wait pool),等待池的状态是阻塞状态;顺便说一下对应的notify()方法,会从等待池中释放一个线程,这个线程是有系统决定的 ,让该线程进入该对象的锁池(lock pool),等待得到锁标记,然后再执行;notifyall()方法取代n原创 2015-09-01 15:47:45 · 358 阅读 · 0 评论 -
java中形参,实参改变
Java的形参,实参改变 Java中形参如果为基本类型的话,传递的是值,所以不会改变的(因为在内存中它指向的数据的地址没改变,所以不会发生改变)改变的只是形参,实参不会改变 //基本类型 publicclasstest3 { publicstaticvoidmain(String [] args) { int a = 1;原创 2015-08-06 11:34:16 · 4810 阅读 · 0 评论 -
java垃圾回收
Java的垃圾回收机制是Java虚拟机的操作(JVM),JVM空闲时间以不定时的方式动态回收无任何引用的对象占据的内存空间。1.java垃圾回收的是无引用对象的内存空间,而不是对象本身2.java怎么判断该对象是不是垃圾 引用计数:引用计数存储对特定对象的所有引用数,当应用程序创建引用时,jvm必须适当增减引用数,当某对象的引用数为0时,便可以进行垃圾收集,简单的说就是该对象没有原创 2015-08-07 10:45:39 · 411 阅读 · 0 评论 -
java 希尔排序
public class test3 { public static void main(String [] args) { int [] insert = new int [10]; //初始数组 System.out.println("未排序数组 "); for(int i=0; i { insert[i] =原创 2015-08-06 17:19:08 · 285 阅读 · 0 评论 -
深度优先搜索
深度优先搜索就是有多远就走多远,能滚到哪就滚到哪这个思想是从头访问一个点,输出这个点,然后把这个点标记为已读,找到与他相连的任意一个点,再次进行此操作,递归挺好理解的哈给个例子:伪代码:int flag = 0; // 这个就是标记量,标记有多少个已经走过了,如果这个flag == 总共的点数,那么就代表程序输出结束了对象 point原创 2015-08-14 16:45:08 · 454 阅读 · 0 评论 -
jdbc 数据库连接池
jdbc连接池就是先从数据库中取出一定量的数据,放在池子(集合)中,然后客户端每次请求数据的时候就不用每次都关联数据库了,可以从数据库连接池中直接取数据,当连接池中数据没有了,先等一会,看有没有其他用户连接释放,如果有就直接将这个释放的连接给请求的用户,如果没有,那就从数据库中再取一些数据放入连接池中连接池中数据量的决定,有很多影响因素,比如用户的并发量等如果连接池中数据量过多,很多时候请原创 2015-08-14 12:49:53 · 435 阅读 · 0 评论 -
java jdbc
Java jdbcJDBC操作步骤注册驱动创建连接(Connection)创建SQL语句(Statement)执行结果(ResultSet)释放资源 1.注册驱动三种方法 Class.forName(“com.mysql.jdbc.Driver”) DriverManager.registerDriver(com.mysql.jdbc.Dr原创 2015-08-09 16:13:04 · 348 阅读 · 0 评论 -
java 单例模式
单例模式就是你不用再去new对象,而是有你调用函数,函数中去帮你创建对象,为什么不自己new呢,要调用函数不是麻烦了吗?因为你每次new对象的时候,虽然都是同一个类的对象,但你每次new的时候,在内存中都每个你new对象对相应内存空间是不一样的,也就是说会占用多个内存空间,但是如果每次申请对象的时候先判断该对象是否存在,如果存在就使用这个对象,那这样的话就节省内存空间,但你每次想申请对象的时候原创 2015-08-09 10:26:37 · 363 阅读 · 0 评论 -
java 策略模式
策略模式就是好多算法,方式封装到一起,然后根据不同的需求选择不同的算法例子:首先一个接口:public static interface a { public int num (int num1, int num2); }然后实现该接口的类(就是不同的算法类):public static class b implements a {原创 2015-08-10 17:08:39 · 243 阅读 · 0 评论 -
java 代理模式
代理模式就是访问一个类的时候,用另一个类去替代它被访问,相当于在被访问资源和访问资源的进程中添加一个中间层例子:首先有一个接口:public interface agency { void sys(String name);}然后被访问资源:public class agency_demo implements agency {@Ove原创 2015-08-10 15:37:50 · 396 阅读 · 0 评论 -
java 观察者模式
观察者模式就是一对多的关系时使用,观察者多个,被观察者一个,该模式就是被观察者改变时,所有观察该对象的观察者全部改变例子:首先由一个被观察者类:import java.util.ArrayList;import java.util.List;public class Power { private List ob = new ArrayList();原创 2015-08-10 16:35:59 · 388 阅读 · 0 评论 -
java 多态
之前面试一家比较大的做外卖公司,两个人一起面试,一个人问了很长时间作品,算法都挺好的,到另一个,上来问java基础,你问基础你自己不会啊,堆和栈你都不知道你问个球球啊!最后还问多态,说了一遍,说我说的不对,直接在纸上写个多态--零, 零你妹啊!算了,多态就是同一操作在不同对象上做出不同的响应,你按F5在电脑主界面上是刷新的响应,在别的软件上又是别的操作这就是多态,我写个多态的例子。原创 2015-08-10 11:30:01 · 305 阅读 · 0 评论 -
java 反射机制
java反射机制就是在运行状态中动态的知道任意一个类的属性和方法,对于任意一个对象能调用它的方法。这个机制具有的功能有: 能构造任意一个类的对象并且相应的能判断任意一个对象所属的类 能得出任意一个类中的属性和方法 能调用任意一个对象中的方法 动态代理的组成部分例子:1.判断对象是否属于反射的类public cl原创 2015-08-12 10:04:36 · 256 阅读 · 0 评论 -
树 前序遍历,中序遍历,后序遍历
前序遍历:void first(TreeNode *tr){ if (tr != null) { coutdata; //访问根节点 first(tr -> left); //前序遍历左子树 first(tr -> right); //前序遍历右子树原创 2015-08-13 13:52:44 · 429 阅读 · 0 评论 -
哈夫曼树,哈夫曼编码
哈夫曼树又称最优二叉树先说一下权是什么意思? 权就是每个节点上有一个实数,这个实数就代表这个点的权WPL(带权最优路径)怎么算? WPL等于每个点的权*它所在的层数相加怎么构造哈夫曼树? 有n个点,并且知道这n个点的权,先选出最小的权的两个点,合并出一个父节点,再由这个父节点和剩下的最小的权的点再合并出一个新的父节点当做新的一个点,如果有两个原创 2015-08-13 16:26:47 · 1745 阅读 · 1 评论 -
前缀表达式,后缀表达式
我们算简单的算术运算十分easy,但是复杂的呢?这就要考计算机的帮忙了,但是计算机怎么识别运算的优先级呢,这就需要前缀表达式或者后缀表达式了先说后缀表达式规则是从左到右遍历中缀表达式的每个数字和符号,若是数字就输出,即成为后缀表达式的一部分;若是符号,则判断其与栈顶符号的优先级,是优先级低于找顶符号(乘除优先加减)则栈顶元素依次出找并输出,并将当前符号进栈,一直到最终输出后缀表达式为止,还原创 2015-08-13 10:43:09 · 2270 阅读 · 0 评论 -
树,森林,二叉树的互相转换
1.树、森林到二叉树的转换(1)将树转换为二叉树 树中每个结点最多只有一个最左边的孩子(长子)和一个右邻的兄弟。按照这种关系很自然地就能将树转换成相应的二叉树: ①在所有兄弟结点之间加一连线; ②对每个结点,除了保留与其长子的连线外,去掉该结点与其它孩子的连线。【例】下面(a)图所示的树可转换为(c)图所示的二叉树。注意: 由于树根没有兄弟,转载 2015-08-14 11:29:00 · 7014 阅读 · 2 评论 -
二叉排序树相关操作
二叉排序树定义就是左子树比根小,右子树比根大;中序遍历出来的书递增的有序序列; 先说它的查找:类似于二分查找,时间复杂度为logN,这个很好理解吧,就是拿你要找的数从根比,大的话走右面,小的话走左面,每次减少一半; 再说它的插入:只要这个节点不是最底层的节点(就是这个节点下面没有其他节点了),就跟它比较如果小于就往左走,如果大于就往有走,走到空时插入;java实现:原创 2015-09-11 18:26:06 · 277 阅读 · 0 评论