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学习笔记——接口与相关程序** Java 2 Platform, Standard Edition(J2SE)是Java平台的核心部分,提供了开发和运行桌面应用程序、Web应用程序和服务的基础。本笔记主要聚焦于J2SE中的接口(Interface)概念...
【标题】"手工完成java项目(一)——J2SE项目"揭示了这个压缩包文件是关于使用Java标准版(J2SE)进行项目开发的教程。在Java领域,J2SE代表Java 2 Platform, Standard Edition,它是Java平台的核心,主要用于桌面...
Java J2SE(Java 2 Platform, Standard Edition)是Java平台的核心部分,它提供了用于开发和部署桌面应用程序的API和运行环境。这个平台包含了Java语言的基础类库,如集合、多线程、网络编程、I/O操作等核心功能。在...
JAVA开发环境J2SE实验报告 在本实验中,我们将学习和掌握JAVA开发环境J2SE的基本概念和使用方法。具体来说,我们将学习如何下载和安装J2SE开发工具,熟悉J2SE开发工具的使用,编写简单的Java Application和Java ...
《基于Java的J2SE公交查询系统详解》 在当今信息化社会,公共交通查询系统的便捷性对公众出行至关重要。本文将详细介绍一个基于Java Standard Edition (J2SE) 的静态公交信息查询系统,它为用户提供了简单易用的...
java课程设计大作业——用J2SE写的一个坦克大战小游戏java课程设计大作业——用J2SE写的一个坦克大战小游戏java课程设计大作业——用J2SE写的一个坦克大战小游戏java课程设计大作业——用J2SE写的一个坦克大战小游戏...
com.google.zxing.client.j2se.BufferedImageLuminanceSource和com.google.zxing.client.j2se.MatrixToImageWriter,亲测可用
Java自学之路——精华版 Java作为一种广泛使用的编程语言,对于初学者来说,有着丰富的资源和广阔的学习路径。本文将提供一份详细的自学指南,帮助你高效地掌握Java编程技能。 一、选择合适的自学资源 在开始Java...
《由浅入深——Java 2自学教程》是一本旨在帮助初学者逐步掌握Java编程语言的书籍。配书光盘中的“由浅入深——Java 2自学教程 配书光盘.rar”压缩包文件,包含了书中所有工程素材和源码,这对于读者实践和理解Java...
【张孝祥J2SE加强自学笔记(48-56)】主要涵盖了类加载器、代理类和动态类创建等Java核心知识点。 48、类加载器的问题实验分析: 在Java中,类加载器是负责查找并加载类的机制。在Web应用中,有多种类加载器,如...
J2SE(Java 2 Standard Edition)是Java平台的核心部分,为桌面应用提供了基础框架和运行环境。本套“Java入门教程课件”针对初学者,旨在帮助他们理解和掌握Java编程的基本概念和技术。 1. **Java入门**: - **...
Java J2SE(Java Standard Edition)是Java平台的核心部分,主要用于桌面应用开发。它提供了丰富的类库和API,使得开发者可以构建跨平台的应用程序。马士兵老师的J2SE课程是许多初学者和进阶者学习Java的重要资源。...
首先,我们来探讨J2SE的基础——Java语言。Java是一种面向对象的、跨平台的编程语言,其设计目标是“一次编写,到处运行”。它的语法简洁明了,强调代码的可读性和可维护性,支持封装、继承和多态三大面向对象特性。...
**Java J2SE 开发指南:快速学习与深入理解** Java J2SE(Java Standard Edition)是Java平台的核心部分,它提供了开发和运行桌面应用程序、服务器应用程序和嵌入式系统的环境。本指南针对J2SE的开发,旨在帮助初学...
以上是关于J2SE的基础知识点总结,涵盖了Java的基础语法、数据类型、包管理、类与对象的概念以及垃圾回收等核心内容。对于初学者来说,掌握这些基础知识是非常重要的,这将有助于更深入地理解和使用Java语言。
Java J2SE(Java Standard Edition)是Java平台的标准版,它是Java开发工具集的一个子集,主要用于桌面应用程序的开发。本毕业论文将深入探讨如何利用Java J2SE技术来实现一个QQ类似的即时通讯软件,这涉及到Java...
在Java世界中,J2SE(Java 2 Platform, Standard Edition)是开发桌面应用程序的基础平台。本项目聚焦于使用J2SE来实现一个简单的网页浏览器,这是一个深入理解Java GUI编程和网络通信的好方法。我们将探讨如何利用...
J2SE(Java 2 Standard Edition)提供了对Java IDL的支持,使得开发者能够利用Java语言实现CORBA(Common Object Request Broker Architecture)接口,从而构建可跨不同操作系统和网络环境的分布式应用程序。...
例如,`java.lang`包中的`String`、`Object`等类是所有Java程序的基础,`java.util`包则包含了集合框架、日期时间处理、随机数生成等实用工具。 在J2SE Java Api中,`java.io`包是进行输入/输出操作的核心,包括...