首页>网络编程教程> Java教程
全部 ASP教程 ASP教程 ASP.NET教程 PHP教程 JSP教程 C#/CSHARP教程 XML教程 Ajax教程 Perl教程 Shell教程 Visual Basic教程 Delphi教程 移动开发教程 C/C++教程 Java教程 J2EE/J2ME 软件工程
Java教程
  • Java动态代理的应用详解

    Java动态代理的应用详解

    动态代理其实就是java.lang.reflect.Proxy类动态的根据您指定的所有接口生成一个class byte,该class会继承Proxy类,并实现所有你指定的接口(您在参数中传入的接口数组);然后再利用您指定的classloader将 class byte加载进系统,最后生成这样一个类的对象,并初始化该对象的一些值,如invocationHandler,以即所有的接口对应的Method成员。 初始化之后将对象返回给调用的客户端。这样客户端拿到的就是一个实现你所有的接口的Proxy对象。请看实例
    2024-11-24
  • 深入Java对象的地址的使用分析

    深入Java对象的地址的使用分析

    在传统的Java编程中,你将不再需要从内存中处理Java对象或位置。 当你在论坛上讨论这一点,提出的第一个问题是为什么你需要知道Java对象的地址? 它是一种有效的问题。 但以往,我们保留进行试验的权利。探索未知领域的问题并没有什么错。我想出了一个使用sun公司包的实验。Unsafe是一个属于sun.misc包。对你来说可能这个包有点陌生,看看源代码和方法,你就可以知道我所指的是什么了。Java的安全管理提供了足够的隐藏来确保你并不能那么容易的摆弄内存。作为第一步,我想到了要得到一个Java对象的内存位置
    2024-11-24
  • Java多线程之中断线程(Interrupt)的使用详解

    Java多线程之中断线程(Interrupt)的使用详解

    interrupt方法interrupt字面上是中断的意思,但在Java里Thread.interrupt()方法实际上通过某种方式通知线程,并不会直接中止该线程。具体做什么事情由写代码的人决定,通常我们会中止该线程。如果线程在调用Object类的wait()、wait(long)或wait(long, int)方法,或者该类的 join() 、join(long) 、join(long, int) 、sleep(long) 或 sleep(long, int) 方法过程中受阻,则其中断状态将被清除,它还
    2024-11-24
  • 深入Java线程中断的本质与编程原则的概述

    深入Java线程中断的本质与编程原则的概述

    在历史上,Java试图提供过抢占式限制中断,但问题多多,例如前文介绍的已被废弃的Thread.stop、Thread.suspend和 Thread.resume等。另一方面,出于Java应用代码的健壮性的考虑,降低了编程门槛,减少不清楚底层机制的程序员无意破坏系统的概率。如今,Java的线程调度不提供抢占式中断,而采用协作式的中断。其实,协作式的中断,原理很简单,就是轮询某个表示中断的标记,我们在任何普通代码的中都可以实现。 例如下面的代码:volatile bool isInterrupted;//…
    2024-11-24
  • Java字符编码解码的实现详解

    Java字符编码解码的实现详解

    字符集基础:Character set(字符集) 字符的集合,也就是,带有特殊语义的符号。字母“A”是一个字符。“%”也是一个字符。没有内在数字价值,与 ASC II ,Unicode,甚至是电脑也没有任何的直接联系。在电脑产生前的很长一段时间内,符号就已经存在了。 Coded character set(编码字符集) 一个数值赋给一个字符的集合。把代码赋值给字符,这样它们就可以用特定的字符编码集表达数字的结果。其他的编码字符集可以赋不同的数值到同一个字符上。字符集映射通常是由标准组织确定的,例如 USA
    2024-11-24
  • 基于JavaCore文件的深入分析

    基于JavaCore文件的深入分析

    产生时间 Java程序运行时,有时会产生JavaCore及HeapDump文件,它一般发生于Java程序遇到致命问题的情况下。 有时致命问题发生后,Java应用不会死掉,还能继续运行; 但有时致命问题发生,Java进程会死掉; 为了能够保留Java应用发生致命错误前的运行状态,JVM在死掉前产生两个文件,分别为JavaCore及HeapDump文件。有何区别 JavaCore是关于CPU的,而HeapDump文件是关于内存的。 JavaCore文件主要保存的是Java应用各线程在某一时刻的运行的位置,即J
    2024-11-24
  • java实现单链表中是否有环的方法详解

    java实现单链表中是否有环的方法详解

    这是一道微软经典笔试题,就是两个指针h1,h2都从头开始遍历单链表,h1每次向前走1步,h2每次向前走2步,如果h2碰到了NULL,说明环不存在;如果h2碰到本应在身后的h1说明环存在(也就是发生了套圈)。如果环不存在,一定是h2先碰到NULL:如果环存在,h2与h1一定会相遇,而且相遇的点在环内:h2比h1遍历的速度快,一定不会在开始的那段非环的链表部分相遇,所以当h1,h2都进入环后,h2每次移动都会使h2与h1之间在前进方向上的差距缩小1,最后,会使得h1和h2差距减少为0,也即相遇复制代码代码如下
    2024-11-24
  • 基于java枚举类综合应用的说明

    基于java枚举类综合应用的说明

    如下面代码以交灯为示例:复制代码代码如下:public class Test {public static void main(String[] args) {Trafficlight light = Trafficlight.RED;System.out.println(light.time);System.out.println(light.nextLigth());// ordinal()方法返回枚举声明的顺序System.out.println(light.ordinal());// values
    2024-11-24
  • 深入Java7的一些新特性以及对脚本语言支持API的介绍

    深入Java7的一些新特性以及对脚本语言支持API的介绍

    1.switch条件语句中可以加入字符串了,实现方法是利用了字符串的hashcode()值作业真正的值2.增加了一种可以在字面量中使用的进制,二进制,通过在数字前面加“0b”或“0B”3.在数字字面量中使用下划线来分隔数字方便阅读,不影响数值大小。基本原则是前后都是数字的才可以出现下划线4.java7对异常做了两个改动: 4.1.支持在一个catch子句中同时捕获多个异常,另外一个是在捕获并重新抛出异常时的异常类型更加精确。java7中Throwable类增加addSuppressed方法,当一个异常被抛
    2024-11-24
  • 深入Java分布式计算的使用分析

    深入Java分布式计算的使用分析

    如果所有组件都在同一台计算机的同一个Java虚拟机的同一个堆空间上执行是最简单的,但实际中我们面对的往往不是如此单一的情况,如果用户端只是个能够执行Java的装置怎么办?如果为了安全性的理由只能让服务器上的程序存取数据库怎么办?我们知道,大多数情况下,方法的调用都是发生在相同堆上的两个对象之间,如果要调用不同机器上的对象的方法呢?通常,我们从某一台计算机上面取得另一台计算机上的信息是通过socket的输入/输出流,打开另一台计算机的socket连接,然后取得outputStream来写入数据.但如果要调用
    2024-11-24
  • 基于Ajax用户名验证、服务条款加载、验证码生成的实现方法

    基于Ajax用户名验证、服务条款加载、验证码生成的实现方法

    Ajax(asynchronousjavascriptandxml)异步的javascript和xml.是为了解决传统的web应用中"发送请求-等待响应"这种模式的弊端,(浏览器在发送完请求后,只能等待服务器的响应,用户不能做其他的操作,浏览器发送完请求,会抛弃整个页面,等待服务器返回新的页面,也就是说,浏览器和服务器之间交互的数据量很大,不能做到按需获取数据)而创建的技术,该技术的本质是:通过一个浏览器内置的一个对象(XmlHttpRequest)异步地向服务器发送请求.所谓异步指的是浏览器并没有抛弃整
    2024-11-24
  • 使用Log4j为项目配置日志输出应用详解以及示例演示的实现分析

    使用Log4j为项目配置日志输出应用详解以及示例演示的实现分析

    Log4j组件构成Log4j由三个重要的组件构成:1.日志信息的优先级(Logger)2.日志信息的输出目的地(Appender)3.日志信息的输出格式(Layout)。概要:日志信息的优先级从高到低有ERROR、WARN、INFO、DEBUG,分别用来指定这条日志信息的重要程度;日志信息的输出目的地指定了日志将打印到控制台还是文件中;而输出格式则控制了日志信息的显示内容。Log4j介绍 Log4j是 Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、G
    2024-11-24
  • 使用Java实现系统托盘功能的介绍(附源码以及截图)

    使用Java实现系统托盘功能的介绍(附源码以及截图)

    Java中如何,实现系统托盘功能.示例图项目包结构图系统运行截图应用核心逻辑说明,隐藏到托盘实质就是讲窗体隐藏.即setVisible(false),显示窗体即就是讲setVisible(true).项目代码如下:复制代码代码如下:package org.pdp.frame;import java.awt.AWTException;import java.awt.MenuItem;import java.awt.PopupMenu;import java.awt.SystemTray;import jav
    2024-11-23
  • 深入分析Java内存区域的使用详解

    深入分析Java内存区域的使用详解

    Java 内存划分:在Java内存分配中,java将内存分为:方法区,堆,虚拟机栈,本地方法栈,程序计数器。其中方法区和堆对于所有线程共享,而虚拟机栈和本地方法栈还有程序计数器对于线程隔离的。每个区域都有各自的创建和销毁时间。程序计数器:作用是当前线程所执行的字节吗的行号指示器。Java的多线程是通过线程轮流切换并分配处理器执行时间方式来实现的。因此,每个线程为了能在切换后能恢复到正确的位置,每个线程需要独立的程序计数器。Java 虚拟机栈:每个放在被执行的时候都会同时创建一个栈帧用于存储局部变量表,操作
    2024-11-23
  • 基于Java字符编码的使用详解

    基于Java字符编码的使用详解

    1,什么是字符编码?字符(Character)是文字与符号的总称,包括文字、图形符号、数学符号等。一组抽象字符的集合就是字符集(Charset)。字符集的出现是为了信息进行传播储存提供方便。目前常用到字符集有:ASCII,ISO 8859-1,Unicode,GB23122,各种编码集有哪些特点?ASCII:ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统。包含内容:控制字符(回车,退格
    2024-11-23