java常用的包

java.lang:
language,提供基本语言类,包括系统类、数据类型类、字符串类、线程管理类和异常处理类等。该包在程序运行时由编译器自动引入。

Java常用基础包,在开发中会自动导入到代码环境中,不需要import。

1.基本数据类型/包装类

(1)基本数据类型:byte、short、int、long、float、double、char、boolean

(2)包装类:

  其中String.valueof(任意类型)可以将任意类型转换成字符串

  而各个包装类中的parseXXX(String str) 可将字符串转成任意类型的数值

2.数学运算类:Math;其重要方法有:

abs() :获取绝对值函数.

acos()、asin():反余弦、反正弦函数(以弧度为参数值PI结合运算).

cbrt():立方根函数.

cos()、sin():三角余弦、三角正弦函数(以弧度为参数值PI结合运算).

max()、min():获取两个数值中的最大值或最小值.

log()、log10():对数.

random():获取随机数.

round():四舍五入(获得整形值).

floor():得到小于该数的最小整数.

ceil():得到大于该数的最大整数.

sqrt():平方根.

3.字符串类

(1)String:不需要通过new就可以直接创建String对象;+运算符可以用来拼接String内容.

  转载自:https://www.cnblogs.com/luoyanli/archive/2013/04/15/3021854.html

String s=new String("abc")创建了几个对象?

转载自:http://www.cnblogs.com/ydpvictor/archive/2012/09/09/2677260.html

String str=new String("abc");   紧接着这段代码之后的往往是这个问题,那就是这行代码究竟创建了几个String对象呢?

相信大家对这道题并不陌生,答案也是众所周知的,2个。

接下来我们就从这道题展开,一起回顾一下与创建String对象相关的一些JAVA知识。  

我们可以把上面这行代码分成String str、=、"abc"和new String()四部分来看待。String str只是定义了一个名为str的String类型的变量,因此它并没有创建对象;=是对变量str进行初始化,将某个对象的引用(或者叫句柄)赋值给它,显然也没有创建对象;现在只剩下new String("abc")了。那么,new String("abc")为什么又能被看成"abc"和new String()呢?

我们来看一下被我们调用了的String的构造器:  

public String(String original) {  //other code ...  }   大家都知道,我们常用的创建一个类的实例(对象)的方法有以下两种:

一、使用new创建对象。 

二、调用Class类的newInstance方法,利用反射机制创建对象。

我们正是使用new调用了String类的上面那个构造器方法创建了一个对象,并将它的引用赋值给了str变量。同时我们注意到,被调用的构造器方法接受的参数也是一个String对象,这个对象正是"abc"。由此我们又要引入另外一种创建String对象的方式的讨论——引号内包含文本。

 

这种方式是String特有的,并且它与new的方式存在很大区别。  

String str="abc";  

毫无疑问,这行代码创建了一个String对象。  

String a="abc";  String b="abc";   那这里呢?

答案还是一个。  

String a="ab"+"cd";   再看看这里呢?

答案是三个。

说到这里,我们就需要引入对字符串池相关知识的回顾了。  

在JAVA虚拟机(JVM)中存在着一个字符串池,其中保存着很多String对象,并且可以被共享使用,因此它提高了效率。由于String类是final的,它的值一经创建就不可改变,因此我们不用担心String对象共享而带来程序的混乱。字符串池由String类维护,我们可以调用intern()方法来访问字符串池。  

我们再回头看看String a="abc";,这行代码被执行的时候,JAVA虚拟机首先在字符串池中查找是否已经存在了值为"abc"的这么一个对象,它的判断依据是String类equals(Object obj)方法的返回值。如果有,则不再创建新的对象,直接返回已存在对象的引用;如果没有,则先创建这个对象,然后把它加入到字符串池中,再将它的引用返回。因此,我们不难理解前面三个例子中头两个例子为什么是这个答案了。

 

只有使用引号包含文本的方式创建的String对象之间使用“+”连接产生的新对象才会被加入字符串池中。对于所有包含new方式新建对象(包括null)的“+”连接表达式,它所产生的新对象都不会被加入字符串池中,对此我们不再赘述。因此我们提倡大家用引号包含文本的方式来创建String对象以提高效率,实际上这也是我们在编程中常采用的。

 

栈(stack):主要保存基本类型(或者叫内置类型)(char、byte、short、int、long、float、double、boolean)和对象的引用,数据可以共享,速度仅次于寄存器(register),快于堆。 

堆(heap):用于存储对象

看: 
String   s= "Hello "; 
s= "Java "; 
String   s1= "Hello "; 
String   s2=new   String( "Hello "); 

啊,s所引用的string对象不是被修改了吗?之前所说的不变性,去那里了啊? 

在jvm的工作过程中,会创建一片的内存空间专门存入string对象。我们把这片内存空间叫做string池。 

String   s= "Hello ";当jvm看到 "Hello ",在string池创建string对象存储它,并将他的引用返回给s。 
s= "Java ",当jvm看到 "Java ",在string池创建新的string对象存储它,再把新建的string对象的引用返回给s。而原先的 "Hello "仍然在string池内。没有消失,他是不能被修改的。 

所以我们仅仅是改变了s的引用,而没有改变他所引用的对象,因为string对象的值是不能被修改的。 

String   s1= "Hello ";jvm首先在string池内里面看找不找到字符串 "Hello ",找到,返回他的引用给s1,否则,创建新的string对象,放到string池里。这里由于s= "Hello "了,对象已经被引用,所以依据规则s和s1都是引用同一个对象。所以   s==s1将返回true。(==,对于非基本类型,是比较两引用是否引用内存中的同一个对象) 

String   s2=String( "Hello ");jvm首先在string池内里面看找不找到字符串 "Hello ",找到,不做任何事情,否则,创建新的string对象,放到string池里面。由于遇到了new,还会在内存上(不是string池里面)创建string对象存储 "Hello ",并将内存上的(不是string池内的)string对象返回给s2。所以s==s2将返回false,不是引用同一个对象。 

好现在我们看题目: 
String   s   =   new   String( "xyz "); 
首先在string池内找,找到?不创建string对象,否则创建,   这样就一个string对象 
遇到new运算符号了,在内存上创建string对象,并将其返回给s,又一个对象 

所以总共是2个对象 

java.io:
提供读/写文件或其他的而输入/输出流,包括基本输入/输出类、字节数据与字符数据流类、文件流类等

java.util:
提供一些实用工具,包括数据结构类、日期类、随机数类、属性类和异常类等

1.日期或时间类型:

(1)Date:java平台用于描述时间信息(包括用于精确描述年、月、日、小时、分钟、毫秒信息)的基类;

(2)Calendar:基于通用日历规则

(3)基于经典数据结构的集合框架

 

java.awt:
用来构建图形用户界面(GUI)的类,提供许多界面元素和资源,包括图形类、容器类、排列类、事件类和工具类

java.net:
提供网络功能的类,包括主机名解析类、实现套接字通信的Socket类和ServerSocket类、资源定位器(URL)类等

java.applet:
提供实现java小程序的类,其中的Applet类是非常有用的类,用于创建java小程序,处理小程序和浏览器之间的相互关系

java.swing:
提供许多新的组建,可以建立精致的图形用户界面。所有swing组建都在java扩展包javax.swing中。javax.awing包中提供的组件比AWT组件更多

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值