
JAVA
空你个指针啊
别忘了你的星辰大海
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【转】java实体类实现序列化的意义
一、序列化的意义客户端访问了某个能开启会话功能的资源, web服务器就会创建一个与该客户端对应的HttpSession对象,每个HttpSession对象都要站用一定的内存空间。如果在某一时间段内访问站点的用户很多,web服务器内存中就会积累大量的HttpSession对象,消耗大量的服务器内存,即使用户已经离开或者关闭了浏览器,web服务器仍要保留与之对应的HttpSession对象,在他们超时之转载 2017-03-08 21:27:49 · 325 阅读 · 0 评论 -
UML类图几种关系的总结(依赖、聚合、组合、泛化、实现、关联)
在UML类图中,常见的有以下几种关系:泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)1.泛化(Generalization)【泛化关系】:是一种继承关系,它指定了子类如何特化父类的所有特征和行为例如:老虎是动物的一种. 【箭头指向】:带三角箭头的实转载 2017-05-01 10:09:28 · 468 阅读 · 0 评论 -
sleep和wait的区别
调用sleep,虽然线程休眠,但仍然占用cpu资源,且有时间限制,休眠时间到后会自动唤醒; 调用wait,不占用cpu资源,需要调用notify手动唤醒;原创 2017-04-19 23:31:52 · 293 阅读 · 0 评论 -
OOP(面向对象编程)设计五大原则
设计模式遵循的一般原则:1.开-闭原则(Open-Closed Principle, OCP):一个软件实体应当对扩展开发,对修改关闭.说的是,再设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展.换言之,应当可以在不必修改源代码的情况下改变这个模块的行为,在保持系统一定稳定性的基础上,对系统进行扩展。这是面向对象设计(OOD)的基石,也是最重要的原则。2.里氏代换原则(Liskov转载 2017-04-20 10:55:10 · 1465 阅读 · 1 评论 -
JAVA常用设计模式
1.单例设计模式 所谓单例设计模式简单说就是无论程序如何运行,采用单例设计模式的类(Singleton类)永远只会有一个实例化对象产生。具体实现步骤如下: (1) 将采用单例设计模式的类的构造方法私有化(采用private修饰)。 (2) 在其内部产生该类的实例化对象,并将其封装成private static类型。 (3) 定义一个静态方法返转载 2017-04-20 11:16:38 · 890 阅读 · 0 评论 -
JAVA快速排序
package com.liu.util;public class QuickSort {private static void quickSort(int[] array, int beg, int end) { if (beg >= end || array == null) return; int p = partition(array, beg, end);原创 2017-04-19 21:59:21 · 229 阅读 · 0 评论 -
不用临时变量交换两数的值
package com.liu.util;public class ExchangeWithoutTmp {public static void exchange(int a, int b){ a = a + b; b = a - b; a = a - b; System.out.println("a:"+a+",b:"+b);}}原创 2017-04-19 19:41:03 · 214 阅读 · 0 评论 -
二分查找
package com.liu.util;public class BinarySearch {/** * 二分查找针对有序序列 * 先将0赋值给low,序列长度赋值给high,中间序号赋值给mid * 用nums[mid]和待查找数做对比, * 若nums[mid]小于待查找数,则将mid+1赋值给low,最后一位数的序号赋值给high,中间序号赋值给mid; * 若nums[原创 2017-04-19 19:07:12 · 323 阅读 · 0 评论 -
JAVA辗转相除求最大公约数
辗转相除的基本思想就是:用大的数除以小数;取得余数,若余数为0,则最大公约数为除数;若余数不为零,则用除数除以余数,递归直到余数为0package com.liu.util;public class GetMaximumCommonDivisor {public static int getDivisor(int m, int n){ /** * 判断m,n的大小,用大的原创 2017-04-19 18:10:42 · 921 阅读 · 0 评论 -
阿里菜鸟JAVA实习生一面面试题
这篇文章本来早就该发出来了,但是因为这段时间一直比较忙,所以到现在才发出来。这期间断断续续自己写过一些,但是因为手残没有保存完整,所以后半部分都是贴相关链接了类加载器http://blog.youkuaiyun.com/gjanyanlig/article/details/6818655/String、StringBuffer、StringBuilder* String字符串是常量,其值不能改变* Stri原创 2017-04-07 21:02:06 · 15119 阅读 · 0 评论 -
JAVA中Throws和Throw的区别
Throw是语句抛出一个异常,写于方法内部;语法:throw (异常对象); throw e;Throws是方法可能抛出异常的声明;语法:[(修饰符)](返回值类型)(方法名)([参数列表])[throws(异常类)]{......} public void doA(int a) throws Exception1,Exception3{......}1、t原创 2017-04-27 09:46:50 · 1822 阅读 · 0 评论 -
怎样使HashMap安全
将HashMap替换为HashTable,但效率较低,因为HashTable每个方法都是Synchronized的;用Collection类的synchronizedMap方法包装一下返回一个新的Map;使用ConcurrentHashMap,它使用分段锁,即将修改的部分锁住,所以效率比HashTable高原创 2017-04-27 09:57:29 · 836 阅读 · 0 评论 -
Junit4单元测试
Junit测试需要jar包:junit4.jar.@Test:测试方法.@Before:初始化方法.@After:释放资源//测试类public class StudentsTest { private SessionFactory sessionFactory; private Session session; private Transaction transact原创 2017-03-09 14:00:20 · 298 阅读 · 0 评论 -
Java注解
注解(Annotation)注解的分类按运行机制分类.源码注解:在源码中存在,编译成.class文件后就不存在了.编译时注解:注解在源码和.class文件中都存在(JDK自带注解都属于编译时注解).运行时注解:在运行阶段还起作用,甚至会影响运行逻辑的注解,可通过反射读取(@Autowired)按来源分类.来自JDK的注解.来自第三方的注解.自己定义的注解元注解给注解进行注解JDK自带注原创 2017-03-09 13:57:56 · 228 阅读 · 0 评论 -
【转】Vector、List、Table、Map等JAVA集合
线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构。这些类均在java.util包中。本文试图通过简单的描述,向读者阐述各个类的作用以及如何正确使用这些类。Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hashtable├HashMap└WeakHashMa转载 2017-03-08 21:34:06 · 361 阅读 · 0 评论 -
Java中的String、StringPool(字符串常量池)
字符串常量池与简单语法String s = "hahahah";String s2 = "hahahah";1->在字符串常量池中查看是否存在内容与"hahahah"相同的字符串对象;2->若没有,则新创建一个包含该内容的字符串对象,并让引用变量指向该对象。例如,创建字符串s的时候,字符串常量池中没有,则创建一个新对象,并让s指向该对象;3->若已存在包含该内容的字符串对象,则让字符串引用原创 2017-03-08 21:35:36 · 3313 阅读 · 0 评论 -
JDNI数据共享(Java Naming and Directory Interface,Java命名和目录接口)
跨应用的数据共享 相关程序包: javax.naming: 命名操作 javax.naming.directory: 目录操作 javax.naming.event: 在命名目录服务器中请求时间通知 javax.naming.ldap: 提供LDAP支持 java原创 2017-03-09 13:41:24 · 488 阅读 · 0 评论 -
JAVA反射
万物皆对象类是java.lang.Class类的实例对象任何一个类都是Class的实例对象,这个实例对象有三种表示方式(类类型/class type):第一种: Class c1 = Foo.class //Foo是自定义类,每一个类都有一个隐含的静态成员变量class第二种: Class c2 = foo1.getClass() //通过对象的getClass()第三种:try{原创 2017-03-09 13:45:19 · 298 阅读 · 0 评论 -
JAVA反射的作用
JAVA反射的作用获取某个对象的属性得到某个类的静态属性执行某个对象的方法执行某个类的静态方法新建实例判断是否为某个类的实例得到数组中的某个元素调用类中的private方法//method.setAccessible(true);原创 2017-03-09 13:45:55 · 288 阅读 · 0 评论 -
JAVA反射的基本操作
方法的反射1)如何获取某个方法 方法的名称和方法的参数列表才能唯一决定某个方法2)方法反射的操作 method.invoke(对象,参数列表)Class A{ public void print(int a, int b){ ... } public void print(String a, String b){ ... }}原创 2017-03-09 13:46:41 · 239 阅读 · 0 评论 -
JAVA获取类的方法
JAVA获取方法信息在类里声明的返回值类型、基本数据类型等有.class方法,获取类的类类型,如:int.class、String.class、double.class、void.class等获取类的全部信息://jni本地方法,java声明,C实现//要获取类的信息,首先要获取类的类类型Class c = obj.getClass(); //获取类名称c.getName()//Met原创 2017-03-09 13:47:18 · 528 阅读 · 0 评论 -
JAVA动态加载类
动态加载类Class.forName(“类的全称”) 不仅表示了类的类类型,还代表了动态加载类编译时刻加载类似静态加载类、运行时刻加载类是动态加载类new 创建对象是静态加载类,在编译时刻就要加载所有可能用到的类通过动态加载类可解决编译时的问题 //动态加载类,在运行时刻加载 Class c = Class.forName(args[0]); //通过类类型,创建该类对象 On原创 2017-03-09 13:48:22 · 285 阅读 · 0 评论 -
JAVA反射获取成员变量构造函数信息
获取成员变量构造函数信息成员变量也是对象java.lang.reflect.FieldField类封装了关于成员变量的操作getFields()方法获取的是所有的public的成员变量的信息getDeclaredFields获取的是该类自己声明的成员变量的信息获取成员变量信息:Class c = obj.getClass();Field[] fs = c.getDeclaredFiel原创 2017-03-09 13:49:22 · 366 阅读 · 0 评论 -
JAVA通过反射了解集合泛型本质
通过Class,Method来认识泛型的本质反射的操作都是编译之后的操作编译之后集合的泛型是去泛型化的Java中集合的泛型,是防止错误输入的,只在编译阶段有效,绕过编译就无效了可通过方法的反射来绕过编译ArrayList list = new ArrayList();list1.add("hello");Class c1 = list.getClass();try{ Method原创 2017-03-09 13:50:18 · 386 阅读 · 0 评论 -
Java基本数据类型和其包装类
基本数据类型和其包装类的区别JAVA把内存划分为栈内存和堆内存,基本数据类型和对象的引用变量都是在函数的栈内存中分配,实际的对象是存储在堆内存中# 堆中分配的内存是由java虚拟机的自动垃圾回收器来管理,因为堆中分配空间所需的时间远大于从栈中分配存储空间,所以java比c慢 # java提供两种不同的类型:引用类型(或者封装类型,Warpper)和原始类型(或内置类型,Pri原创 2017-03-09 13:56:39 · 203 阅读 · 0 评论 -
JAVA连接池和数据源
连接池与数据源传统数据库连接方式的不足: 需要经常与数据库建立连接 在访问结束后必须要关闭连接释放资源 当并发访问数量较大时,网站速度受到极大影响 系统的安全性和稳定性相对较差连接池技术工作原理连接池中的连接: 连接池是由容器提供的,用来管理池中连接对象 应用程序从连接池中获得连接 在桌面应用中,可以使用第三方的库来实现连接池 而在W原创 2017-03-09 13:44:41 · 532 阅读 · 0 评论