`

J2SE自学(六)——包与Java常用类

阅读更多
1、如果没有包,把所有类放在一个文件夹下,这样的缺陷有两个:
   1)、当类的数目多了不易管理。
   2)、不能有两个名字相同的类。


2、包就类似我们操作系统中的文件夹。以前文件少时可以把所有的放在某盘的根目录下,当文件过多时,我们就建立文件夹,把相同类型的文件放在同一个文件夹下。包的道理也是一样的,包的出现是

为了更好的管理类

3、包的作用:
   1)、管理类
   2)、对封装提供支持

4、在 java 中,我们通过package 关键字声明包,并且包名的首字母都是小写。

5、如果当前类与要使用的类不再同一个包中,应使用import关键字导入。

6、常常将包名+类名=类的全名

7、在开发过程用,使用哪个类就明确导入哪个类!不用用XXXXXX.*来代替!

8、包的命名规范:反写的企业域名.功能名.模块名

9、JAVA 常用包简介:
   SUN 还把它们按照功能的不同放在不同的包里,如:
   java.lang: java 的核心类库,包含了运行java 程序必不可少的系统类,如基本数据类型、基本数学函数、字符串处理、线程、异常处理类等,系统缺省加载这个包 
   java.lang.reflect:提供用于反射对象的工具
   java.io: java 语言的标准输入/输出类库,如基本输入/输出流、文件输入/输出等      
   java.util:常用的工具类,如集合框架类,日期处理类等。
   java.sql: JDBC 相关类。
   java.net:JAVA 网络包,其中包含能够使程序通过网络进行通信的
   java.awt;javax.swing:使用java 开发C/S 结构应用程序使用的类。

   SUN 规定:lang 包中的类可以不用导入而直接使用。 

10、包装类:Java中的基本数据类型有8个,则与其对应的8个基本数据类型的有8个类!这8个类就是所谓的包装类。其中值得注意的是char类型对应的包装类不是String类而是Character类

11、基本数据类型变量只在栈中分配一块内存,而包装类在栈和堆中各占一块。
    JAVA 语言是面向对象的语言,但它不是所有的设计思想都符合面向对象的,这里大家要知道java 不符合面向对象的两个地方:一个是JAVA 保留了8 个基本数据类型,他们不是对象,更没有属性和方法;另一个就是JAVA 中存在着main 方法。

    既然如此还为什么要有包装类呢?
    效率和需求的问题!包装类分配两块内存空间,存放具体数值的数据在堆中,而堆内存的分配比较占用系统资源,而且使用完毕后需要垃圾回收车回收,而我们平时在程序中要大量使用如数字这些变量,他们只做简单的存储,完全没必要使用包装类,那这样不如保留基本数据类型,它在完成功能的同时又不会占用过多的资源, SUN 也是基于这样的考虑保留了JAVA 中的基本数据类型。


12、自动拆箱与装箱
    把数据由基本数据类型转换为对应包装类叫做装箱。
    把数据由包装类转化为基本数据类型叫拆箱。
 

    在JDK1.5 前在java 中实现装箱与拆箱的代码如下:
    int a = 10; 
    Integer b; 
    int c; 
    //装箱,基本数据类型-->包装类 
    b = Integer.valueOf(a); 
    //拆箱,包装类-->基本数据类型 
    c = b.intValue(); 

   在JDK1.5 中提出的一个新功能就是自动装箱和拆箱,代码如下所示:
   int a = 10; 
   //自动装箱,基本数据类型-->包装类 
    Integer b = a; 
   //自动拆箱,包装类-->基本数据类型 
    int c = b;


13、把字符串类型转化为数字类型:
    1)、可以使用数字类型对应的valueOf()方法
    String number = "123" ;
    Integer num = Integer.valueOf(number) ;
    2)、可以使用parseXXX()方法
    String number = "123" ;
    Integer num = Integer.parseInt(number) ;

    valueOf ()与parseXXX ()是静态方法,通过类名点方法名调用


14、String 类(介绍一些常用的方法,这里要常常看JAVA提供的API说明文档):
    1)、.equals(String a) :
       以==比较的是两个变量是否指向同一块空间,equals()比较的是指向的两个内存空间的值是否相等,== 为true 的equals()一定为true(指向同一空间,值一定相等),但equals()为true,==不一定为true(两个数值相等,不一定是同一块内存空间),在java 中,我们做字符串比较要使用equals()方法。
     ==比较的是栈内存,而equals方法比较的是堆内存!

public static void main(String[] args) { 
    String a = "zhangsan"; 
    String b = "zhangsan"; 
    String c = new String("zhangsan"); 
     
    System.out.println("(a == b) = " + (a == b)); 
    System.out.println("(a == c) = " + (a == c)); 
    System.out.println("(a.equals(b)) = " + a.equals(b)); 
    System.out.println("(a.equals(c)) = " + a.equals(c)); 


运行结果:
(a == b) = true
(a == c) = false
(a.equals(b)) = true
(a.equals(c)) = true

这里JAVA 又一个字符串池的概念。就是说它会把所已知的字符串放入字符串池,如果你创建新字符串没有使用new 关键字,如String b = "zhangsan";这行代码,它首先会去字符串池找有没有相同值的字符串,如果有的话就指向它;如果没有的话就会创建新的空间。这里查询时找到了对应的值,所以a 和b 指向了同一块内存空间。而如果使用了new 关键字,如String c = new String("zhangsan");这行代码,它不会去字符串池中寻找而直接创建一份新的内存空间(也就是不管字符串池中有没有,都会直接创建一份新的内存空间)。基于这些,才有上面的运行结果。
   2)、.trim():去掉字符串两边的空格。但一些不老实的用户输入的密码旁边有空格(比如上例),这是令人烦恼的,那你可以用这个方法去掉两边的空格(注意此方法并不能去掉中间的空格)


15、StringBuffer 类
    当创建StringBuffer 对象时系统默认分配一定长度的内存,使用append 方法往其中放入字符串,如果放入的字符串超出内存的范围,那么它会自动在其后追加一倍长度的内存,这样前面的内存就可以继续使用,没有浪费。最后使用toString()方法转化为字符串。这样写比用String类不断的追加节省内存空间,同时也提高了一定效率(因为String类是定长的!)。(记住以后再字符串拼接的过程中要StringBuffer类)
    还有除去StringBuffer类jdk1.5 开始还提供了一个StringBuilder类,它们之间的区StringBuffer 类的方法是同步的,也就是线程安全的,而StringBuilder 是线程非安全的,但效率较高。
分享到:
评论

相关推荐

    j2se学习笔记——课堂笔记

    **J2SE学习笔记——接口与相关程序** Java 2 Platform, Standard Edition(J2SE)是Java平台的核心部分,提供了开发和运行桌面应用程序、Web应用程序和服务的基础。本笔记主要聚焦于J2SE中的接口(Interface)概念...

    手工完成java项目(一)——J2SE项目

    【标题】"手工完成java项目(一)——J2SE项目"揭示了这个压缩包文件是关于使用Java标准版(J2SE)进行项目开发的教程。在Java领域,J2SE代表Java 2 Platform, Standard Edition,它是Java平台的核心,主要用于桌面...

    J2SE基础,内容是JAVA

    Java J2SE(Java 2 Platform, Standard Edition)是Java平台的核心部分,它提供了用于开发和部署桌面应用程序的API和运行环境。这个平台包含了Java语言的基础类库,如集合、多线程、网络编程、I/O操作等核心功能。在...

    实验1 JAVA开发环境J2SE实验报告.doc

    JAVA开发环境J2SE实验报告 在本实验中,我们将学习和掌握JAVA开发环境J2SE的基本概念和使用方法。具体来说,我们将学习如何下载和安装J2SE开发工具,熟悉J2SE开发工具的使用,编写简单的Java Application和Java ...

    J2SE.rar_j2se_java公交查询_基于java的公交

    《基于Java的J2SE公交查询系统详解》 在当今信息化社会,公共交通查询系统的便捷性对公众出行至关重要。本文将详细介绍一个基于Java Standard Edition (J2SE) 的静态公交信息查询系统,它为用户提供了简单易用的...

    java课程设计大作业-用J2SE写的一个坦克大战小游戏

    java课程设计大作业——用J2SE写的一个坦克大战小游戏java课程设计大作业——用J2SE写的一个坦克大战小游戏java课程设计大作业——用J2SE写的一个坦克大战小游戏java课程设计大作业——用J2SE写的一个坦克大战小游戏...

    zxing二维码中j2se的两个包

    com.google.zxing.client.j2se.BufferedImageLuminanceSource和com.google.zxing.client.j2se.MatrixToImageWriter,亲测可用

    Java自学之路——(精华版)

    Java自学之路——精华版 Java作为一种广泛使用的编程语言,对于初学者来说,有着丰富的资源和广阔的学习路径。本文将提供一份详细的自学指南,帮助你高效地掌握Java编程技能。 一、选择合适的自学资源 在开始Java...

    由浅入深——Java 2自学教程 配书光盘.rar

    《由浅入深——Java 2自学教程》是一本旨在帮助初学者逐步掌握Java编程语言的书籍。配书光盘中的“由浅入深——Java 2自学教程 配书光盘.rar”压缩包文件,包含了书中所有工程素材和源码,这对于读者实践和理解Java...

    张孝祥J2SE加强自学笔记(48-56)

    【张孝祥J2SE加强自学笔记(48-56)】主要涵盖了类加载器、代理类和动态类创建等Java核心知识点。 48、类加载器的问题实验分析: 在Java中,类加载器是负责查找并加载类的机制。在Web应用中,有多种类加载器,如...

    java 入门教程课件——j2se

    J2SE(Java 2 Standard Edition)是Java平台的核心部分,为桌面应用提供了基础框架和运行环境。本套“Java入门教程课件”针对初学者,旨在帮助他们理解和掌握Java编程的基本概念和技术。 1. **Java入门**: - **...

    java j2se源码

    Java J2SE(Java Standard Edition)是Java平台的核心部分,主要用于桌面应用开发。它提供了丰富的类库和API,使得开发者可以构建跨平台的应用程序。马士兵老师的J2SE课程是许多初学者和进阶者学习Java的重要资源。...

    J2SE宏观性总结

    首先,我们来探讨J2SE的基础——Java语言。Java是一种面向对象的、跨平台的编程语言,其设计目标是“一次编写,到处运行”。它的语法简洁明了,强调代码的可读性和可维护性,支持封装、继承和多态三大面向对象特性。...

    J2SE开发指南帮你快速学习JAVA

    **Java J2SE 开发指南:快速学习与深入理解** Java J2SE(Java Standard Edition)是Java平台的核心部分,它提供了开发和运行桌面应用程序、服务器应用程序和嵌入式系统的环境。本指南针对J2SE的开发,旨在帮助初学...

    j2se总结-一个学习java的总结笔记j2se部分

    以上是关于J2SE的基础知识点总结,涵盖了Java的基础语法、数据类型、包管理、类与对象的概念以及垃圾回收等核心内容。对于初学者来说,掌握这些基础知识是非常重要的,这将有助于更深入地理解和使用Java语言。

    Java j2se QQ 毕业论文

    Java J2SE(Java Standard Edition)是Java平台的标准版,它是Java开发工具集的一个子集,主要用于桌面应用程序的开发。本毕业论文将深入探讨如何利用Java J2SE技术来实现一个QQ类似的即时通讯软件,这涉及到Java...

    用J2SE实现原网页浏览器(java)

    在Java世界中,J2SE(Java 2 Platform, Standard Edition)是开发桌面应用程序的基础平台。本项目聚焦于使用J2SE来实现一个简单的网页浏览器,这是一个深入理解Java GUI编程和网络通信的好方法。我们将探讨如何利用...

    J2SE.programming.code.Java.IDL.Example.rar_java IDL_java program

    J2SE(Java 2 Standard Edition)提供了对Java IDL的支持,使得开发者能够利用Java语言实现CORBA(Common Object Request Broker Architecture)接口,从而构建可跨不同操作系统和网络环境的分布式应用程序。...

    J2SE_Java_Api.zip

    例如,`java.lang`包中的`String`、`Object`等类是所有Java程序的基础,`java.util`包则包含了集合框架、日期时间处理、随机数生成等实用工具。 在J2SE Java Api中,`java.io`包是进行输入/输出操作的核心,包括...

Global site tag (gtag.js) - Google Analytics