`
生活的聆听者
  • 浏览: 16657 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表

双向链表的实现

 
package com.test.tmp; public interface IList<E> { boolean add(E e); int getSize(); E get(int index); E getFirst(); E getLast(); boolean remove(int index); boolean remove(E e); boolean contains(E e); ...
回调函数的概念        回调函数顾名思义就是:A调用B,然后B又可以回调A中的方法。可以举如下例子:晚上下班回家开灯准备用电饭煲煮晚饭,发现家里由于欠费导致停电了,这个时候通过支付宝缴纳电费,电费缴纳成功之后呢支付宝需要通知电力公司,我家的电费缴纳成功了,然后我查看家里的电表,发现电费缴纳成功,可以继续做饭了(只是举例说明回调函数的含义,具体支付宝缴纳电费不一定是这么实现)。   样例代码 回调接口,电费缴纳成功之后需要通知客户端调用方,说电费缴纳成功了。 package com.test; /** * 回调接口 */ public interface ...
     线程池是Java开发中常用的功能,在日常开发经常用到,那对于其的实现原理是否了解?下面就线程池的原理做个简单的分析。就从最简单的使用开始来分析具体实现和领悟JDK 实现的基本思想。    最简单的线程池使用方式               ExecutorService service = Executors.newFixedThreadPool(10); service.execute(new Runnable() { @Override public void run() { ...
在现实生活中我们经常听到某某网站被黑客攻击导致网站不能正常提供服务或者是网站信息被篡改等等情况,那么下面我们来简单了解下黑客一般是通过什么手段使得网站瘫痪的呢?下面会提到常用的三种基于网络的三种攻击方式。 DDOS攻击,全称为DDoS:Distributed Denial of Service ,翻译中文为:分布式拒绝服务。主要是指基于客户/服务器技术,将网络上多个计算机联合起来作为攻击平台载体,对一个或多个目标发动攻击,这样借助于网络上的机器提高拒绝服务攻击的威力。这些网络上的机器可能是在自己未知的情况下被安装攻击程序,这样只要主控机器向网络上各个主机发送攻击指令,这样网络主机就成为了一个攻 ...
题目 给一个浮点数序列,取最大乘积连续子串的值,例如 -2.5,4,0,3,0.5,8,-1,则取出的最大乘积连续子串为3,0.5,8。也就是说,上述数组中,3 0.5 8这3个数的乘积3*0.5*8=12是最大的,而且是连续的。 private static double getMaxProductNum(double[] array) { double max = array[0]; double cur; int begin= 0 , end = 0 ; for (int i = 0 ; i < array.length ; i++) { ...
Java多线程面试题及回答 1)现在有T1、T2、T3三个线程,你怎样保证T2在T1执行完后执行,T3在T2执行完后执行? 这个线程问题通常会在第一轮或电话面试阶段被问到,目的是检测你对”join”方法是否熟悉。这个多线程问题比较简单 ...
来自:http://www.ibm.com/developerworks/cn/aix/library/0808_zhengyong_tcp/ 引言 在官方的正式文档中,TCP/IP 协议簇也称为国际互联网协议簇。TCP/IP 协议簇是目前使用最为广泛的全球互联网技术,其分层结构如图 1 所示: 图 1. TCP/IP 协议簇分层结构 figure1 如图 1 所示,数据链路层主要负责处理传输媒介等众多的物理接口细节;网络层负责处理数据分组在网络中的活动,包括上层数据报文的分割、选路 phost2008-08-21T00:00:00 等;传输层则负责为两台主机提供端到端的通信;应用层将负 ...
最新整理书籍,无意间翻出大学时期数据结构课本,随便翻阅了其中关于排序这一章,粗略的看了下突然觉得比较陌生,作为计算机基础的东西,自己工作了反而用的比较少,平时自己也没有太关注,为了以后万一需要找工作方便复习这些东西,今写于此。 快速排序:快速排序是对冒泡排序的一种改进,冒泡排序是比较的相邻两个元素,故比较的次数以及元素移动的频率比较大。快速排序有效的改进了这一不足,比较的元素位置相隔比较远,并且是由两端向中间比较。 下面基于java语言实现快速排序算法。 private static int quickSort(int low, int high , int a[] ) { int ...

Java类加载原理浅析

    博客分类:
  • JVM
<div class="iteye-blog-content-contain" style="font-size: 14px"></div>我们都知道Java程序最终都是以class文件的表现形式,其中这些class文件都要被加载到JVM之后才能改被执行和使用。但是对于JVM是如何去加载这些Class文 ...
下面是一维数组存储结构示意图 由上面来看这个一维数组存储结构很简单,这里是一颗完全二叉树所以在一维数组里面没有造成内存的浪费。但是如果不是一个完全或者满二叉树的话,并且仍然采取顺序存储结构的话就会造成大量的内存单元浪费,因为我们必须给二叉树添上一些虚构的不存在的结点,这是资源浪费一方面。另一方面是如果这棵二叉树存在大量的插入和删除等操作就会出现运算的不方便,因为我们插入或者删除一个结点就会造成大量的其他结点的移动。所以基于以上等各方面的原因,对于一般的二叉树而言我们都采用的是链式存储结构。 2、链式存储结构 由于在二叉树每个结点都最多有两个孩子,所以一般来说每个链结点都有三个域,分别是左孩子指 ...
FutureTask为可取消的异步计算任务的程序处理。这个异步任务是可以取消的,。利用开始和取消计算的方法、查询计算是否完成的方法和获取计算结果的方法,此类提供了对 Future 的基本实现。仅在计算完成时才能获取结果;如果计算尚未完成,则阻塞 get 方法。一旦计算完成,就不能再重新开始或取消计算。可使用 FutureTask 包装 Callable 或 Runnable 对象。因为 FutureTask 实现了 Runnable,所以可将 FutureTask 提交给 Executor 执行。除了作为一个独立的类外,此类还提供了 protected 功能,这在创建自定义任务类时可能很有用。 ...
在基于J2EE的规范各个J2EE APPLICATION SERVER中,对于EJB容器的实现原理都一样,在EJB容器提供的对服务端的EJB应用的访问提供几种不同的访问方式:可以通过WEB应用访问、胖客户端、APPCLIENT访问,下面以胖客户端访问方式来简单的说明在调用服务端的 EJB应用底层SOCKET大体实现原理: 1、构造一个简单的EJB应用,下面的简单EJB应用用EJB3.0规范实现: @Remote public Interface Ejb3Interface{ public String invokeEjb(); } @Statele ...
引用 [*]引用JAVA中的对象序列化是用来讲java的类对象实例编码成字节流在传输层进行传输【这个过程可以被称作序列化】,并且在服务端接收到序列化之后的对象进行反序列化从字节流编码中重新构建对象【这个过程可以被称为反序列化】。可以这么说JAVA序列化技术为java远程通信提供了标准的线路级对象表示法,也为JAVABEANS组件结构提供了标准的持久化数据格式,【这句话引自effective java】。 [*] [*]下面的代码例子很简单,就是一个简单的序列化与反序列化的过程。主要是将一个JAVA类对象序列化后传输到服务端,在服务端进行反序列化重构类对象。 持久化类:Persist ...
本人刚刚毕业半年,第一次写技术方面的文章,主要目的就是记录自己在工作中以及平时学习过程中对一些知识点的理解,与大家一起分享,肯定有写的不好的地方和错误,希望给位批评指出,大家一起成长,谢谢~~。下面是关于EJB调用与java  RMI方面的自己见解。 用过服务器的程序员应该都知道,在rich client 或者通过其他方式调用服务器端部署的EJB应用时一般都是在客户端调用lookup(“JndiName”)向服务器端发送一个lookup的jndi名称,然后服务器端存在这个JNDI名称的话会向客户端返回一个与JNDI绑定的ejb对象,最后客户端通过这个返回的EJB对象来调用业务方法。整个EJB的调 ...
Global site tag (gtag.js) - Google Analytics