maggie 的blog

PING和TELNET用法介绍

JAVA里的PING是在JDK 1.5后用了新的函数isreachable去实现,具体介绍如下:

  InetAddress对象的常用方法

  InetAddress类有很多get方法,用来获取主机名,主机地址等信息。主要有:

  byte[] getAddress() 返回次InetAddress对象的原始IP地址,保存为一个byte数组

  String getCanonicalHostName() 获取此IP地址的完全限定域名

  String getHostAddress() 获取IP地址的字符串,返回为一个String

  String getHostName() 获取此IP地址的主机名

  下面一个简单的例子展示这些方法的使用:
[code]
  package org.dakiler.javanet.chapter1;
  import java.net.InetAddress;
  public class Example3
  {
  public static void main(String args[])throws Exception
  {
  InetAddress address=InetAddress.getByName("www.microsoft.com");

Java异常类总结

算术异常类:ArithmeticExecption

  空指针异常类:NullPointerException

  类型强制转换异常:ClassCastException

  数组负下标异常:NegativeArrayException

  数组下标越界异常:ArrayIndexOutOfBoundsException

  违背安全原则异常:SecturityException

  文件已结束异常:EOFException

  文件未找到异常:FileNotFoundException

  字符串转换为数字异常:NumberFormatException

  操作数据库异常:SQLException

  输入输出异常:IOException

  方法未找到异常:NoSuchMethodException

  java.lang.AbstractMethodError

  抽象方法错误。当应用试图调用抽象方法时抛出。

  java.lang.AssertionError

  断言错。用来指示一个断言失败的情况。

  java.lang.ClassCircularityError

如何应用Clone

对于克隆(Clone),Java有一些限制:

  1、被克隆的类必须自己实现Cloneable 接口,以指示 Object.clone() 方法可以合法地对该类实例进行按字段复制。Cloneable 接口实际上是个标识接口,没有任何接口方法。

  2、实现Cloneable接口的类应该使用公共方法重写 Object.clone(它是受保护的)。某个对象实现了此接口就克隆它是不可能的。即使 clone 方法是反射性调用的,也无法保证它将获得成功。

  3、在Java.lang.Object类中克隆方法是这么定义的:

  protected Object clone()

  throws CloneNotSupportedException

  创建并返回此对象的一个副本。表明是一个受保护的方法,同一个包中可见。

  按照惯例,返回的对象应该通过调用 super.clone 获得。

  引题:

  举个例子说吧,现在有一个对象比如叫foo,你需要在创建当前对象的一个副本作为存根你能怎么做?

  假如你不用Clone,那么你可以先new一个对象foo1:Foo foo1=new Foo(),然后用foo给foo1对象set值,这样就得到foo的副本foo1;除此之外,别无选择。

java

Java

Java线程同步的使用

Synchronized,顾名思义,代表线程同步。那么,在java编程中如何使用它呢?

  我们首先来看这样一个情况:对于同一个变量synDemo,我们分别在2个不同的线程中调用synDemo.synMethord1()与synDemo.synMethord2()。
[code]
  package com.cnblogs.gpcuster;/** * * @author Aaron.Guo * */

  public class Tester {public static void main(String[] args) {final SynDemo synDemo = new SynDemo();Thread thread1 = new Thread() {@Overridepublic void run() {// TODO Auto-generated method stub

  super.run();synDemo.synMethord1();}};Thread thread2 = new Thread() {@Overridepublic void run() {// TODO Auto-generated method stub

用trim函数实现去掉空格

1.

   String.trim()

  trim()是去掉首尾空格

  2.

str.replace(" ", ""); 去掉所有空格,包括首尾、中间

  String str = " hell o ";

  String str2 = str.replaceAll(" ", "");

  System.out.println(str2);

  3.或者replaceAll(" +",""); 去掉所有空格

  4.

str = .replaceAll("\\s*", "");

  可以替换大部分空白字符, 不限于空格

  \s 可以匹配空格、制表符、换页符等空白字符的其中任意一个

  5.或者下面的代码也可以去掉所有空格,包括首尾、中间
[code]
  public String remove(String resource,char ch)

  {

  StringBuffer buffer=new StringBuffer();

  int position=0;

  char currentChar;

  while(position

16进制和字节数组互转程序

[code]public static String stringToHexString(String strPart) {

  String hexString = "";

  for (int i = 0; i < strPart.length(); i++) {

  int ch = (int) strPart.charAt(i);

  String strHex = Integer.toHexString(ch);

  hexString = hexString + strHex;

  }

  return hexString;

  }

  private static String hexString="0123456789ABCDEF";

  /*

  * 将字符串编码成16进制数字,适用于所有字符(包括中文)

  */

  public static String encode(String str)

  {

  // 根据默认编码获取字节数组

  byte[] bytes=str.getBytes();

  StringBuilder sb=new StringBuilder(bytes.length*2);

解决Java内存泄露问题方案

内存泄漏的慨念

  1.c/c++是程序员自己治理内存,Java内存是由GC自动回收的。

  我虽然不是很熟悉C++,不过这个应该没有犯常识性错误吧。

  2.什么是内存泄露?

  内存泄露是指系统中存在无法回收的内存,有时候会造成内存不足或系统崩溃。

  在C/C++中分配了内存不释放的情况就是内存泄露。

  3.Java存在内存泄露

  我们必须先承认这个,才可以接着讨论。虽然Java存在内存泄露,但是基本上不用很关心它,非凡是那些对代码本身就不讲究的就更不要去关心这个了。

  Java中的内存泄露当然是指:存在无用但是垃圾回收器无法回收的对象。而且即使有内存泄露问题存在,也不一定会表现出来。

  4.Java中参数都是传值的。

  对于基本类型,大家基本上没有异议,但是对于引用类型我们也不能有异议。

  Java是如何管理内存

对Java进行初始化应避免的问题

为了说明这个问题先给大家出个问题吧:

  请看代码:
[code]
  view plaincopy to clipboardprint?

  public abstract class A {

  public A() {

  initMethod();

  }

  public abstract void initMethod();

  }

  public abstract class A {

  public A() {

  initMethod();

  }

  public abstract void initMethod();

  }

  view plaincopy to clipboardprint?

  public class B extends A {

  static String staticStr = "static1";

  private String testStr = "Test1";

  /*

  * (non-Javadoc)

  *

  * @see A#initMethod()

  */

  public void initMethod() {

同步内容