java
文章平均质量分 91
sunny4handsome
这个作者很懒,什么都没留下…
展开
-
java 抽象类和接口的区别
语法层面上: 1)抽象类可以提供成员方法的实现细节,而接口中只能存在public abstract 方法; 2)抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的; 3)接口中不能含有静态代码块以及静态方法,而抽象类可以有静态代码块和静态方法; 4)一个类只能继承一个抽象类,而一个类却可以实现多个接口原创 2015-07-11 11:07:12 · 979 阅读 · 0 评论 -
java RMI
首先给出官网上的教程地址:https://docs.oracle.com/javase/tutorial/rmi/overview.html,有什么不明白的地方可参见官网,下面主要是我写的一个例子,分为Server和Client两个部分,实现的功能是从Server读取一个文件,在Client端显示到Console。最后的代码我会上传到github,大家可以下载下来,已经打包为jar文件一、RM原创 2016-05-13 21:18:44 · 398 阅读 · 0 评论 -
java command 编译 打包
首先我们用两个类来演示Java类的编译 类的内容如下:ComputeSum.java//计算两个数的和 InvoteCompute.java//调用ComputeSun的compute函数 上篇:一、带包编译 编译javac ComputeSum.java InvoteCompute.java -d ./原创 2016-05-12 20:52:24 · 417 阅读 · 0 评论 -
leetcode MajorityElement相关问题
题目:MajorityElement Given an array of size n, find the majority element. The majority element is the element that appears more than n/2 times. You may assume that the array is non-empty and the m原创 2016-02-24 19:31:53 · 432 阅读 · 0 评论 -
Exception in thread "main" java.util.ConcurrentModificationExceptions
用java的Map时候碰到这样一个错误Exception in thread "main" java.util.ConcurrentModificationException我在遍历Map(用迭代器)的时候删除了某些元素,然后调用迭代器是时候就触发了这个错误,我就看一下源码,原因是Map和Iterator中维持了这样一个遍历modcount,用来记录Map和Iterator中修改数据结构的次数原创 2016-04-17 14:40:57 · 3476 阅读 · 0 评论 -
Spring IOC
下面主要讲解spring中IOC的DI几种配置方式一、public class Student { private String name; private String sex; public Student(){} public Student(String name, String sex) { this.name = name; this.sex = sex;原创 2016-04-07 18:11:04 · 263 阅读 · 0 评论 -
java 自定义注解
元注解: 元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明。Java5.0定义的元注解: 1.@Target, 2.@Retention, 3.@Documented, 4.@Inherited 这些类型和它们所支持的类在java.la原创 2016-04-07 17:33:37 · 345 阅读 · 0 评论 -
java 编译.java文件
一、单个文件无包结构 javac Demo.java java Demo二、多个文件带包结构假设目录结构如下:com/sunny/test/Demo.javacom/sunny/common/DBSession.javajavac com/sunny/test/Demo.java com/sunny/common/DBSession.java 或原创 2016-03-16 14:37:17 · 305 阅读 · 0 评论 -
spring aop
一、Aop central conceptsAspect(横切面):一个横切多个类的模块,在企业级java应用中,事务管理就是一个很好的横切面的例子,在spring Aop模块中,aspect有两种实现方式,一是xml配置,二是注解Join point:将要陪Point Cut用来收集的函数(普通的函数)Advice:当满足Pointcut时,要执行的操作(ar原创 2015-12-25 11:06:34 · 417 阅读 · 0 评论 -
Java并发编程:线程间的协作wait()、notify()、notifyAll()和Condition
java并发编程协作有两种方式:1、利用Object对象下面的wait()、notify()或者notifyAll() 2、领用Condition的await()、singnal()或者singnalAll()其中需要注意的是:对于方式1、调用wait()、notify()或者notifyAll() 必须在同步块或者同步方法中进行(synchronized块或者synchronized方原创 2016-05-16 14:45:12 · 465 阅读 · 0 评论 -
二叉树的遍历 Java版
下面给出二叉树的前序、后序、中序遍历的递归和非递归加上层序的非递归算法/*前序遍历,递归*/ public void preorder(TreeNode root){ TreeNode node = root; if(node!=null){ visit(node); preorder(node.left); preorder(node.right); } }原创 2016-04-21 16:00:14 · 339 阅读 · 0 评论 -
jvm 指令集代码
jvm基本指令iconst_1int型常量值1进栈bipush将一个byte型常量值推送至栈顶iload_1第二个int型局部变量进栈,从0开始计数istore_1将栈顶int型数值存入第二个局部变量,从0开始计数iadd栈顶两原创 2016-08-19 20:36:52 · 13190 阅读 · 4 评论 -
java 注解
本文介绍java中的注解,第一部分给出注解的基础介绍,第二部给出一个注解的应用实例。Java注解分为2个部分1、自定义注解 2、元注解一、注解介绍1、Java注解语法Modifiers @interface AnnotationName{element1 declaration;element2 declaration;}每一个元素的语法原创 2016-08-19 16:02:33 · 896 阅读 · 0 评论 -
Java String
给出Java中String的常见操作,并给出字节码分析结果 public static voidfun1(){//首先在常量池中查找abc这个字符串,如果存在则不会新建,直接引用常量池中已经存在的StringStringstr1 = "abc";Stringstr2 = "abc";System.out.println(str1==str2);//returntrue原创 2016-08-18 23:47:12 · 344 阅读 · 0 评论 -
Java内存泄漏
1、内存泄漏的通用定义 内存泄漏也称作“存储渗漏”,用动态存储分配函数动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元。直到程序结束。(其实说白了就是该内存空间使用完毕之后未回收)即所谓内存泄漏。 2、Java中的内存泄漏定义 在Java中,内存泄漏就是存在一些被分配的对象,这些对象有下面两个特点,首先,这些对象是可达的,即在有向图中,存在通路可以与其原创 2016-08-18 22:57:34 · 308 阅读 · 0 评论 -
java Scanner 输入
要求,不断的输入一个整数,然后打印这个整数。下面给出代码public class TestINput { public static void main(String[] args) { fun1(); //fun2(); } public static void fun1(){ Scanner in = new Scanner(System.in); while(in.ha原创 2016-08-29 15:49:18 · 2097 阅读 · 0 评论 -
大数加减乘除问题
下列代码给出的大数的加减乘代码的java代码,由于大数相除比较复杂,没有给出/*大数问题(加、减、乘、除)*//*代码中给出了1、两个整数相加;2、两个整数相减;这个两种基本情况 * 其他情况均可以转化成这两种运算; * 比如两个负数相加为2个整数相加加符号 * 整数减负数为2个整数相加 * 负数减整数为两个整数相加加负号 * */import org.junit.Tes原创 2016-08-04 22:24:20 · 591 阅读 · 0 评论 -
JAVA并发编程:线程池Executors
Java中对线程池提供了很好的支持,有了线程池,我们就不需要自已再去创建线程。如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。JAVA的线程池中的线程可以在执行完任务后,不销毁,继续执行其他的任务。所以了解Java的线程池对我们掌握并发编程是很有帮助的,下面我就从Executors这个多线程框架开始讲起原创 2016-05-17 13:44:35 · 748 阅读 · 0 评论 -
java并发编程:顺序输出A、B、C循环10次
要求:3个线程,分别输出A、B、C。循环10次,给出三种方法,code如下一、wait、notifypublic class PrintABC { static int state = 0; private static Object o = new Object(); public static void main(String[] args) { ExecutorServic原创 2016-05-19 15:20:48 · 1791 阅读 · 0 评论 -
log4j2 配置与使用
本文讲解log4j2的配置与使用,注意不是log4j,这2个版本间有所不同。1.输出日志等级有以下几种等级:* Levels used for identifying the severity of an event. Levels are organized from most specific to least: * * {@link #OFF} (most specific,原创 2015-12-15 19:37:50 · 463 阅读 · 0 评论 -
java 泛型
很多朋友对java的泛型不是很理解,很多文章写的已不是很清楚,这篇博客对java泛型进行 一个总结。1.泛型的转换:List foo1 = new ArrayList();//illegal很多朋友会写出上面的代码,但会报如下错误:Type mismatch: cannot convert from ArrayList to List尽管Interge是Number的子类,但是Arra原创 2015-12-14 13:37:00 · 514 阅读 · 0 评论 -
快速排序 java实现
package com.sunny.sort;/** * quick sort * @author panzha * 快速排序思想,选取一个数作为基准,一般选第一个,然后把数组分为2块,这个基准数字右边的都比这个数大,左边的都比这数小 */public class Demo001 { public static void main(String[] args) { //Integ原创 2015-10-14 16:50:40 · 332 阅读 · 0 评论 -
Servlet深入学习
Servlet是学习j2ee的基础,所以必要对Servlet有所了解,Servlet是运行在tomcat容器中的,Tomcat设计的内容比较多,有专门的一本书介绍,我们简单了解一下Tomcat的容器模型一、Tomcat的容器模型Tomcat 的容器等级中,Context 容器是直接管理 Servlet 在容器中的包装类 Wrapper,所以 Context 容器如何运行将直接影响 Se原创 2015-06-23 11:44:04 · 536 阅读 · 0 评论 -
Hibernate入门教程
以下几篇博客中,我将会按章节把Hibernate详细讲解一遍,将包括以下内容:一、Hibernate的简单配置,单张表的增删改查操作二、Hibernate的一对一单边双边配置、以及增删改查三、Hibernate的一对多单边双边配置、以及增删改查四、Hibernate的多对一单边双边配置、以及增删改查五、Hibernate的多对多单边双边配置、以及增删改查环境:MyEclip原创 2015-06-26 21:25:19 · 903 阅读 · 0 评论 -
java中的几种内部类
java中的内部类比c++中的嵌套类功能更多,应用更广,java中的内部类的好处就内部类具有访问特权,可以访问外部类中私有成员,在这里我们不去探讨内部类的原理,因为比较复杂,我们只看这么用,我们从例子出发;java中的内部类分为以下几种:1、最常见的拿一种,在一个类中定义一个类;2、局部内部类,在一个方法中定义一个类,1中说的内部类是在类中直接定义的3、匿名内部类,我们在阅读一些源原创 2015-06-21 20:31:50 · 1044 阅读 · 0 评论 -
java代理
首先,java中为什么要提出代理的设计模式呢?代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 上面将的有点抽象,代理发生在代理类和被代理类之间,代理的主要功能就是给被代理类的方法做一些事前处理和事后处理的工作。java中代理又分为静态代理和动态代理。我们一一来看,如果知道Sp原创 2015-06-24 17:23:31 · 518 阅读 · 0 评论 -
由引用引发的问题
这个是我在处理execl中碰到一个,当时数据比较多,一直没有发现这个问题,后来但不调试才发现这个问题,现在将这个问题简单的抽象出来,供大家参考,虽然道理很简答,但在大量的代码中出现这个问题,有的时候真的不好发现public class Demo { static List list = new ArrayList();//list用于存放2个数组 static int[] t = new原创 2015-04-25 15:47:32 · 378 阅读 · 0 评论 -
yum 安装java
http://jingyan.baidu.com/article/4853e1e51d0c101909f72607.html转载 2015-04-15 22:01:25 · 426 阅读 · 0 评论 -
java 异常处理
java中异常有两种:已检查异常和未检查异常。对于已检查异常,必须要提供处理器,如果没有,程序就会终止并在控制台上打印一组消息。 try { Class c1 = Class.forName(className); Employee emp = (Employee)c1.newInstance(); System.out.println(em原创 2015-04-15 21:57:15 · 363 阅读 · 0 评论 -
Java管道通信(转)
Java提供管道功能,实现管道通信的类有两组:PipedInputStream和PipedOutputStream或者是PipedReader和PipedWriter。管道通信主要用于不同线程间的通信。一个PipedInputStream实例对象必须和一个PipedOutputStream实例对象进行连接而产生一个通信管道。PipedOutputStream向管道中写入数据,Pip转载 2015-04-15 21:59:30 · 393 阅读 · 0 评论 -
c++动态绑定、静态绑定与java中动态绑定与静态绑定的比较
废话不说直接上代码一、c++中示例Persion类#includeusing namespace std;class Persion{public: void display(){ cout<<"This is Persion"<<endl; } virtual void show(){ cout<<"This is Persion"<<endl; }};原创 2015-06-19 20:31:23 · 482 阅读 · 0 评论 -
Hibernate入门教程
上一章我们学了一下Hibernate的配置和单张表的操作,这一章说一下Hibernate中一对一的配置Hibernate入门教程 第二章Hibernate的一对一单边双边配置、以及增删改查预备知识:1、fetch ,可以设置fetch = "select" 和 fetch = "join"fetch ="select"是在查询的时候先查询出一端的实体,然后在根据一端的查询出多端原创 2015-06-27 14:06:59 · 2322 阅读 · 0 评论 -
java中native方法的使用
在很多情况下,java需要调用其他语言的代码,比如c的代码,那么这个时候java中native方法就发挥作用了,下面就介绍native方法的使用。一、JNI使用流程 a.编写带有native声明的方法的Java类 b.使用javac命令编译编写的Java类 c.使用java -jni ****来生成后缀名为.h的头文件原创 2015-08-12 14:55:06 · 1779 阅读 · 0 评论 -
单链表逆序
单链表的逆序是面试中经常写的一道算法题,下面给出它的实现:注:下为带头结点的单链表java代码public void reverse_1(){ Entry e= head;//head为链表的头结点 Entry p = e; if(e.next==null || e.next.next==null)//链表为空,或者只有一个节点,则返回 return ; e =原创 2015-07-13 18:49:42 · 451 阅读 · 0 评论 -
java 单例模式
单例模式有以下特点: 1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例方式一、懒汉式单例,线程不安全public class SingleOne { //懒汉式单例,线程不安全 private static SingleOne single = null; private SingleOne(){}//设置原创 2015-07-11 16:01:11 · 571 阅读 · 0 评论 -
java中static关键字
1、static变量 按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量;另一种是没有被static修饰的变量,叫实例变量。两者的区别是: 对于静态变量在内存中只有一个拷贝(节省内存),jvm只为静态分配一次内存,在加载类的过程中完成静态变量的内存分配,可用类名直接访问(方便),当然也可以通过对象来访问(但是这是不推荐的)。原创 2015-07-11 14:32:21 · 549 阅读 · 0 评论 -
回调函数
回调函数的定义:使用回调函数实际上就是在调用某个函数(通常是API函数)时,将自己的一个函数(这个函数为回调函数)的地址作为参数传递给那个函数。而那个函数在需要的时候,利用传递的地址调用回调函数,这时你可以利用这个机会在回调函数中处理消息或完成一定的操作。说白了就是将一个你自已的一个函数A的函数指针传给另外一个函数B(该函数接受你传过来的函数指针);然后在B中调用这个函数,那么就完成了一次原创 2015-07-11 13:48:19 · 528 阅读 · 0 评论 -
java中final关键字
在java中有3个地方需要用final关键字:1、如果一个不希望被继承,那么用final来修饰这个类2、如果一个方法不需要被重写,那么这个方法用final来修饰3、如果一个变量的值不希望被改变,那么这个变量用final来修饰原创 2015-07-11 14:42:13 · 510 阅读 · 0 评论 -
Hibernate+Spring配置
Hibernate和Spring的都是轻量级的框架,现在用的也比较多,既可以开发web应用,也可以开发独立的应用,他们都非官方框架,但对EJB都有重要的影响,下面,举个简单的列子(班级学生为例),将他们俩进行整合环境:myeclipse架包版本:Hibernate(3.3)+Spring(3.0)班级类(Clazz)@Entity@Table(name = "class100",原创 2015-06-08 16:44:15 · 489 阅读 · 0 评论 -
Hibernate配置(配置文件方式)
一、双边的一对多,多对一配置(单边只要去掉一方就可以了) ,班级学生为例原创 2015-06-06 16:34:19 · 424 阅读 · 0 评论