java常用知识

Java的常用包
“==”和“equals”的用法
基本数据类型与引用类型
String和StringBuffer
对象的克隆(clone)
数组的相关操作
封装类
Runtime类与Process类
Class类
设计模式
java.applet:包含一些用于创建Java小应用程序的类。
java.awt:包含一些用于编写与平台无关的图形界面(GUI)应用程序的类。
java.io:包含一些用作输入输出(I/O)处理的类。
java.lang:包含一些Java语言的基本类与核心类,如String、Math、Integer、System和Runtime,提供常用的功能,这个包中的所有类是被隐式导入的。
java.net:包含用于建立网络连接的类,与java.io同时使用完成与网络有关的读写。
java.util:包含一些实用工具类和数据结构类。
“==”和“equals”的用法
在Java中,boolean、byte、short、int、long、char、float、double这八种是基本数据类型,其余的都是引用类型。
“==”是比较两个变量的值是否相等,“equals”是比较两个对象变量所代表的对象的内容是否相等。
对象的内存分配图
                    当我们声明一个引用类型变量时,系统只为该变量分配了引用空间,并未创建
一个具体的对象;当用new为对象分配空间后,将对象的引用赋值给引用变量。
String和StringBuffer
String str=“abc”;
            int i=3;
            float f=4.5f;
            char ch='a';
            boolean b=true;
            System.out.println(str + i + f + ch + b);
针对String的“+”和“+=”,是Java中唯一被重载的操作符;在Java中,不允许程序员重载操作符。
String类对象一个常量对象。
            String str=“abc”;
            str=“def”;
在处理大量字符串的程序中,我们通常用StringBuffer来替代String。
数组的内存分配图
基本数据类型一维数组内存分配
函数的调用
在Java中,传参时,都是以传值的方式进行。
对于基本数据类型,传递的是数据的拷贝;对于引用类型,传递的引用的拷贝。
class StringTest
{
public static void change(int x,int y)
{
        x=x+y;
        y=x-y;
        x=x-y;
}
public static void main(String[] args)
{
        int x=3;
        int y=4;
        change(x,y);           
        System.out.println("x="+x);
        System.out.println("y="+y);
}
}
class StringTest
{
public static void change(Point pt)
{
        pt.x=pt.x+pt.y;
        pt.y=pt.x-pt.y;
        pt.x=pt.x-pt.y;
}
public static void main(String[] args)
{
        Point pt=new Point();
        pt.x=3;
        pt.y=4;
        change(pt);
        System.out.println("x="+pt.x);
        System.out.println("y="+pt.y);
}
}
class Point{int x, y;}
对象的克隆(clone)
为了获取对象的一份拷贝,我们可以利用Object类的clone()方法。
在派生类中覆盖基类的clone()方法,并声明为public。
在派生类的clone()方法中,调用super.clone()。
在派生类中实现Cloneable接口。
为什么我们在派生类中覆盖Object的clone()方法时,一定要调用super.clone()呢?在运行时刻,Object中的clone()识别出你要复制的是哪一个对象,然后为此对象分配空间,并进行对象的复制,将原始对象的内容一一复制到新对象的存储空间中。
数组的相关操作
在Java中,所有的数组都有一个缺省的属性length,用于获取数组中元素的个数。
数组的复制:System.arraycopy()。
数组的排序:Arrays.sort()。
在已排序的数组中查找某个元素:Arrays.binarySearch()。
封装类
针对八种基本数据类型定义的相应的引用类型-封装类。
基本数据类型 封装类
boolean Boolean
byte Byte
short Short
int Integer
long Long
char Character
float Float
double Double
Class类
在Java中,每个class都有一个相应的Class对象。也就是说,当我们编写一个类,编译完成后,在生成的.class文件中,就会产生一个Class对象,用于表示这个类的类型信息。
获取Class实例的三种方式:
(1)利用对象调用getClass()方法获取该对象的Class实例;
(2)使用Class类的静态方法forName(),用类的名字获取一个Class实例;
(3)运用.class的方式来获取Class实例,对于基本数据类型的封装类,还可以采用.TYPE来获取相对应的基本数据类型的Class实例。
在运行期间,如果我们要产生某个类的对象,Java虚拟机(JVM)会检查该类型的Class对象是否已被加载。如果没有被加载,JVM会根据类的名称找到.class文件并加载它。一旦某个类型的Class对象已被加载到内存,就可以用它来产生该类型的所有对象。
newInstance() 调用类中缺省的构造方法。
Runtime类和Process类
每一个Java程序都有一个Runtime类的单一实例。
通过Runtime.getRuntime()获取Runtime类的实例。
Runtime类是使用单例模式的一个例子。
设计模式
在我们进行程序设计时,逐渐形成了一些典型问题和问题的解决方案,这就是软件模式。
每一个模式描述了一个在我们程序设计中经常发生的问题,以及该问题的解决方案。
当我们碰到模式所描述的问题,就可以直接用相应的解决方法去解决这个问题,这就是设计模式。
单例(Singleton)模式
          (1)一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类。
          (2)单例类的一个最重要的特点是类的构造方法是私有的,从而避免了外部利用构造方法直接创建多个实例。
单例类的实现
class Singleton
{
private static final Singleton st=new Singleton();
private Singleton(){}
public static Singleton getInstance()
{
        return st;
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值