JAVA中常用的类
- 格式:doc
- 大小:45.00 KB
- 文档页数:16
java中常用的键值类型1.引言1.1 概述概述:在Java编程语言中,键值类型是一种非常常见且重要的数据结构。
它们用于存储和访问键值对(key-value)数据,其中键(key)是用于唯一标识数据的标识符,值(value)则是与该键相关联的数据。
这种数据结构在实际应用中非常有用,特别是在需要快速访问、查找和更新数据的场景下。
在Java中,常用的键值类型包括HashMap、LinkedHashMap、TreeMap、Hashtable和Properties。
每种类型都有其特定的特点和适用场景,下面将对每种类型进行详细介绍。
(接下来的内容可以分别对HashMap、LinkedHashMap、TreeMap、Hashtable和Properties进行介绍,包括其定义、特点和使用场景等)1.2 文章结构本文将介绍Java 中常用的键值类型,主要包括HashMap、LinkedHashMap、TreeMap、Hashtable 和Properties。
在本文中,将会详细介绍每种键值类型的特点、用法以及适用场景。
正文部分将分成五个小节,分别介绍每种键值类型。
2.1 HashMapHashMap 是Java 中最常用的键值对容器之一。
它基于哈希表的实现,可以提供快速的插入、删除和查找操作。
在HashMap 中,键和值可以为任意对象,但是键是唯一的,而值可以重复。
2.2 LinkedHashMapLinkedHashMap 是HashMap 的一个子类,它除了具有HashMap 的特性外,还维护一个插入顺序的链表。
因此,在遍历LinkedHashMap 时,可以按照插入的顺序获取元素。
这种特性在某些场景下非常有用。
2.3 TreeMapTreeMap 是一个基于红黑树的实现,它可以保持键的有序性。
与HashMap 不同,TreeMap 中的键是按照自然顺序或者自定义的比较器进行排序的。
因此,可以在TreeMap 中按照键的顺序获取元素。
实验报告附页String s7 = new String("123.678");int n1=Integer.parseInt(s6);//将s6转化成int型数据。
double n2=Double.parseDouble(s7); //将s7转化成double型数据。
double m=n1+n2;System.out.println(m);String s8=String.valueOf(m); //String调用valuOf(int n)方法将m转化为字符串对象position=s8.indexOf(".");String temp=s8.substring(position+1);System.out.println("数字"+m+"有"+temp.length()+"位小数") ;@SuppressWarnings("unused")String s9=new String("ABCDEF");char a[]=s8.toCharArray(); //将s8存放到数组a中。
for(int i=a.length-1;i>=0;i--){System.out.print(" "+a[i]);}}}运行结果:将上面程序按如下要求修改,并运行:(1)程序中的s6改写成String s6=new String(“1a12b”);运行时提示怎样的错误?Exception in thread "main" ng.NumberFormatException: For input string: "1a12b"at ng.NumberFormatException.forInputString(Unknown Source)at ng.Integer.parseInt(Unknown Source)at ng.Integer.parseInt(Unknown Source)at xiti2.xiugai.main(xiugai.java:39)(2)请用数组a的前3个单元创建一个字符串并输出该串。
java常用的8种数据类型及取值范围Java是一种面向对象的编程语言,它支持8种基本数据类型,包括整型、浮点型、字符型、布尔型等。
这些数据类型在Java中非常常用,因此我们需要了解它们的取值范围和使用方法。
1. 整型整型是Java中最常用的数据类型之一,它包括四种类型:byte、short、int和long。
其中,byte类型占用1个字节,取值范围为-128到127;short类型占用2个字节,取值范围为-32768到32767;int类型占用4个字节,取值范围为-2147483648到2147483647;long类型占用8个字节,取值范围为-9223372036854775808到9223372036854775807。
2. 浮点型浮点型也是Java中常用的数据类型之一,它包括两种类型:float 和double。
其中,float类型占用4个字节,取值范围为1.4E-45到3.4028235E38;double类型占用8个字节,取值范围为4.9E-324到1.7976931348623157E308。
3. 字符型字符型是Java中表示字符的数据类型,它占用2个字节,取值范围为0到65535。
在Java中,字符型数据使用单引号括起来,例如:'A'、'B'、'C'等。
4. 布尔型布尔型是Java中表示真假值的数据类型,它只有两个取值:true 和false。
在Java中,布尔型数据使用关键字boolean表示。
除了以上四种基本数据类型,Java还支持四种特殊的数据类型:void、String、数组和枚举。
5. void类型void类型表示没有返回值的方法,它通常用于定义方法时指定返回类型为void。
6. String类型String类型表示字符串,它是Java中非常常用的数据类型之一。
在Java中,字符串使用双引号括起来,例如:"Hello World"。
java中的几种基本类型Java是一种面向对象的编程语言,它提供了多种基本类型来存储不同的数据。
在本文中,我们将介绍Java中的几种基本类型,并且对它们的特点进行详细解释。
1. 整型(int):整型是Java中最常用的基本类型之一,用于存储整数。
它的取值范围为-2147483648到2147483647,占用4个字节的内存空间。
整型可以用来表示年龄、身高、数量等等。
在Java中,整型的默认值为0。
2. 浮点型(float和double):浮点型用于存储带有小数点的数字。
在Java中,有两种浮点类型:float和double。
float类型占用4个字节的内存空间,而double类型占用8个字节的内存空间。
浮点型可以用来表示距离、重量、价格等。
在Java中,浮点型的默认值为0.0。
3. 字符型(char):字符型用于存储单个字符。
在Java中,字符型采用Unicode编码,占用2个字节的内存空间。
字符型可以用来表示字母、数字、符号等。
在Java中,字符型的默认值为'\u0000'。
4. 布尔型(boolean):布尔型用于存储真或假的值。
在Java中,布尔型只有两个值:true和false。
布尔型可以用于表示条件的真假、开关的状态等。
在Java中,布尔型的默认值为false。
5. 字节型(byte):字节型用于存储8位的二进制数据。
在Java中,字节型的取值范围为-128到127,占用1个字节的内存空间。
字节型可以用来表示文件、图像等二进制数据。
在Java中,字节型的默认值为0。
6. 短整型(short):短整型用于存储较小范围的整数。
在Java中,短整型的取值范围为-32768到32767,占用2个字节的内存空间。
短整型可以用来表示月份、星期等。
在Java中,短整型的默认值为0。
这些基本类型在Java中都有对应的包装类,可以用来进行一些特定的操作,比如类型转换、数学运算等。
基本类型和包装类之间可以通过自动装箱和拆箱来进行转换。
JAVA数组操作的常用工具类在Java中,数组是一种包含固定数量元素的数据结构。
数组操作是在数组中执行各种任务的过程,并且在编程中经常遇到。
为了简化数组操作的过程,Java提供了许多常用的工具类来处理数组。
下面是Java数组操作的常用工具类。
1. Arrays类:Arrays类提供了许多静态方法来处理数组,其中一些常用的方法包括:- sort(:对数组进行排序。
- binarySearch(:在排序后的数组中查找指定元素的索引。
- toString(:将数组转换为字符串。
- equals(:比较两个数组是否相等。
- fill(:将数组的所有元素设置为指定值。
2. System类:System类提供了一些用于操作数组的静态方法,其中一些常用的方法包括:- arraycopy(:将一个数组的部分元素复制到另一个数组。
- identityHashCode(:获取数组的哈希码。
3. Collections类:Collections类是Java集合框架的一部分,但也可以用于处理数组。
其中一些常用的方法包括:- sort(:对数组进行排序。
- binarySearch(:在排序后的数组中查找指定元素的索引。
4. Arrays类与Collection接口转换:Arrays类和Collection接口之间提供了一些静态方法,可以将数组转换为Collection,并将Collection转换为数组。
其中一些常用的方法包括:- asList(:将数组转换为List。
- toArray(:将Collection转换为数组。
- toList(:将Collection转换为List。
5. Arrays类与Stream接口转换:Java 8引入了Stream接口,可以对数组进行处理。
Arrays类提供了一些方法来将数组转换为Stream,并从Stream转换为数组。
其中一些常用的方法包括:- stream(:将数组转换为Stream。
Java中常用的集合类有哪些?它们的使用场景是什么?Java作为目前最为流行的编程语言之一,其优越的面向对象编程思想和强大的类库使其成为了广大编程爱好者和专业开发者的首选语言之一。
在Java开发中,常用的集合类具有广泛的应用场景,可以大大简化我们代码的编写和维护。
在本篇文章中,我们将介绍Java中常用的集合类有哪些,它们的使用场景是什么,以及如何选择合适的集合类来应对各种场景。
一、Java中常用的集合类Java中常用的集合类包括List、Set、Map等,具体如下:1.ListList是Java中最基础和最常用的集合类之一,它是一个有序的集合,可以存储重复的元素。
List提供了一系列的方法用来操作列表中的元素,如添加、删除、获取、修改等。
常见的List有ArrayList 和LinkedList。
2.SetSet是Java中的另一个基础集合类,它是一个无序的集合,不允许存储重复的元素。
Set提供了一系列的方法用来操作集合中的元素,如添加、删除、获取等。
常见的Set有HashSet、TreeSet。
3.MapMap是Java中常用的映射关系集合,它存储键值对,支持通过键来访问值。
Map提供了一系列的方法用来操作映射关系,如添加、删除、获取、修改等。
常见的Map有HashMap、TreeMap、ConcurrentHashMap等。
二、Java中常用集合类的使用场景不同的集合类有不同的使用场景,我们需要根据具体的业务需求来选择合适的集合类。
下面我们来介绍几种常见的使用场景及其对应的集合类。
1.需要随机访问元素的情况:ArrayListArrayList是Java中常用的集合类之一,它支持随机访问,通过索引访问元素的时间复杂度为O(1),是处理元素数量较大的情况下的较好选择。
2.需要频繁插入或删除元素的情况:LinkedListLinkedList是另一个常用的集合类,它支持快速的插入和删除操作,通过节点互相关联实现。
java的八个基本类型
Java 是一种面向对象的编程语言,它支持八个基本数据类型,分别是 byte、short、int、long、float、double、char 和 boolean。
下面我们将详细介绍这些类型。
1. byte(字节型)
byte 类型用于存储整型数值(-128 到 127),占用一个字节的空间。
byte 类型通常用于处理文件、网络数据和图像等二进制数据。
3. int(整型)
int 类型用于存储整型数值(-2147483648 到 2147483647),占用四个字节的空间。
int 类型是 Java 中最常用的整型类型,可以用于保存整数、枚举和数组下标等数据。
5. float(单精度浮点型)
float 类型用于存储浮点数值,占用四个字节的空间,在数值范围和精度上比
double 类型差。
float 类型通常用于科学计算和图形处理等领域。
7. char(字符型)
char 类型用于存储 Unicode 字符,占用两个字节的空间。
char 类型可以表示所有
的字符和符号,包括汉字和 Emoji 等表情符号。
8. boolean(布尔型)
boolean 类型只有两个取值,true 和 false。
boolean 类型通常用于控制流程和逻
辑处理等场景。
在 Java 中,基本数据类型属于值类型,它们的值存储在变量的内存空间中。
如果你
想修改变量的值,需要重新赋值。
这与引用类型不同,引用类型保存的是指向对象的指
针。
java中的常⽤集合类整理⽬录Collection接⼝集合的遍历:iterator 接⼝集合的遍历:增强for循环List接⼝ArrayListSet接⼝Map接⼝HashMapLinkedHashMapTreeMapPropertiesCollections⼯具类总结集合、数组都是对多个数据进⾏存储操作(主要是内存层⾯存储)的结构,简称Java容器。
数组的特点1.数组初始化以后,长度确定不可变2.数组定义好,其元素的类型确定不可变(可能有多态性)3.数组中提供的⽅法有限,对于添加、删除、插⼊数据等操作不⽅便。
4.获取数组中实际元素的个数是没有办法的。
5.数组存储数据的特点是有序、可重复的。
Java集合可分为Collection和Map两种体系,集合存储的优点是解决数组存储数据⽅⾯的弊端。
Collection接⼝:单列数据,⽤来存储⼀个⼀个的对象List接⼝:元素有序,可重复的集合 --> '动态'数组Set接⼝ :元素⽆序、不可重复的集合Map接⼝:双列数据,保存有映射关系(键值对)的集合Collection接⼝向collection接⼝的实现类的对象中添加数据obj时,要求obj所在类要重写equals⽅法。
Abstract Methodsadd(Object e):将元素e添加到集合中size():获取添加的元素个数addAll(Collection coll):将形参coll集合的元素添加到当前集合中clear():清空集合元素,集合仍然存在,只是集合⾥没有元素isEmpty():判断当前集合是否为空contains(Object obj):判断当前集合中是否包含obj,是否包含是通过调⽤obj的equals判断containsAll(Collection coll):判断形参coll中的所有元素是否都存在当前集合中。
remove(Object obj):移除某个元素,同样通过equals寻找移除的元素removeAll(Collection coll):从当前集合中移除coll集合中所有的元素,需要调⽤equals函数retainAll(Collection coll):求两个集合的交集,结果为修改当前集合后的集合。
Java中常⽤数据类型的输⼊输出详解⽬录1、Char型1.1 输⼊格式:1.2 举例说明2、int型1.1 简单的int格式输⼊:1.2 举例说明2.1带空格的int格式输⼊:2.2 举例说明3.1 复杂int格式的输⼊3.2 举例说明3、double型1.1 double保留两位格式输出1.2 举例说明4、多次输⼊1.1 输⼊格式1.2 举例说明5、数组1.1 数组输⼊格式:2.1 数组转换成字符串6、字符串1.1 字符串转换成整型,浮点型(以整型为例)1.2 整型,浮点型转换成字符串2.1 字符串转换成字符数组2.2 字符数组转换成字符串3 举例说明7、写在最后C语⾔学习完转到Java后,第⼀个感觉就是Java的写法很复杂,同时,在常⽤的数据类型的输⼊输出上也没有C语⾔那么⽅便。
在C语⾔上⾯,⽤ scanf 函数可以很⽅便的输⼊⼤多数格式,在Java上却不⾏,Java当中没有类似于scanf的语句。
本⽂搭配本⼈的输⼊输出习惯及做题的记录,对这些不同类型的如整型的,是整型的但隔开参数的...做⼀个总结。
下⾯的说明中主类均为Main类,我们使⽤Scanner来进⾏输⼊。
每⼀种输⼊或输出可能有多种⽅法,本⼈只写了较为简单的写法。
1、Char型这⾥说的char型指的是只输⼊⼀个字符的情况。
1.1 输⼊格式:import java.io.IOException;//导⼊包public class Main {public static void main(String[] args) throws IOException {char ch = (char)System.in.read();//<1>System.out.println((int)ch);}}说明:需要搭配IOException异常来使⽤。
<1>中,System.in就是从标准输⼊流(最常见的是键盘)输⼊,rand()⽅法是从这个流⾥⾯读取输⼊的内容。
java中8种基本数据类型Java是一种面向对象的编程语言,它支持8种基本数据类型。
这些数据类型是在Java中最基础的数据类型,用于存储各种不同类型的数据。
本文将详细介绍这8种基本数据类型。
一、整型(int)整型是Java中最常用的数据类型之一,它可以存储整数值。
整型变量可以被声明为以下几种:- byte:该变量可以存储-128到127之间的整数。
- short:该变量可以存储-32768到32767之间的整数。
- int:该变量可以存储-2147483648到2147483647之间的整数。
- long:该变量可以存储非常大或非常小的整数,范围为-9223372036854775808到9223372036854775807。
二、浮点型(float和double)浮点型用于表示小数,包括单精度浮点型和双精度浮点型两种。
float:该变量可以存储6到7位小数,并且范围约为1.4e-45到3.4e+38。
double:该变量可以存储15位小数,并且范围约为4.9e-324到1.8e+308。
三、字符型(char)字符型用于表示单个字符,例如字母、数字和标点符号等。
它只能存储一个字符,使用单引号来声明。
四、布尔型(boolean)布尔型用于表示真或假的值。
它只有两个值:true和false。
五、字节型(byte)字节型是Java中最小的数据类型,它可以存储-128到127之间的整数。
它通常用于处理二进制数据,例如图像和声音等。
六、短整型(short)短整型可以存储-32768到32767之间的整数。
它通常用于节省内存空间,例如在数组中存储大量数据时。
七、长整型(long)长整型可以存储非常大或非常小的整数,范围为-9223372036854775808到9223372036854775807。
它通常用于处理时间戳或其他需要精确计算的数据。
八、无符号整型(unsigned int)无符号整型只能存储正数,范围为0到4294967295。
常用的类名在编程中,类是面向对象编程的基本单位,是一种封装数据和方法的方式,可以实现代码的重用和模块化。
在Java语言中,类是一个关键的概念,Java的标准类库中已经为我们提供了大量常用的类,这些类可以帮助我们快速实现各种功能。
本文将介绍一些常用的类名,以及它们的基本用法。
1. Object类Object类是Java语言中所有类的根类,它定义了一些基本的方法,比如equals()和hashCode()方法,这些方法可以被所有的Java类继承和使用。
在编写自己的类时,我们可以选择继承Object 类,从而获得它提供的一些基本功能。
2. String类String类是Java语言中最常用的类之一,它用于表示字符串。
String类提供了一系列方法,可以方便地操作字符串,比如substring()、indexOf()和toUpperCase()等方法。
在Java中,字符串是不可变的,也就是说,一旦创建了一个字符串对象,就不能再修改它的值。
因此,在进行字符串操作时,需要创建新的字符串对象来保存结果。
3. StringBuffer和StringBuilder类StringBuffer和StringBuilder类也是用于操作字符串的类,它们提供了一些方法,可以方便地添加、删除和修改字符串中的字符。
与String类不同的是,StringBuffer和StringBuilder类是可变的,也就是说,可以在原有的字符串上进行修改,而不需要创建新的字符串对象。
StringBuilder类是Java 5中新增的类,与StringBuffer类类似,但是它的性能更好。
4. Math类Math类是Java语言中用于数学运算的类,它提供了一些常用的数学方法,比如sin()、cos()和sqrt()等方法。
这些方法都是静态方法,可以直接通过类名调用。
5. Random类Random类是Java语言中用于生成随机数的类,它提供了一些方法,可以生成不同类型的随机数,比如nextInt()、nextDouble()和nextBoolean()等方法。
JAVA各种计算工具类Java是一种面向对象的编程语言,它提供了丰富的类库和工具来实现各种计算任务。
在以下内容中,我将介绍一些常用的Java计算工具类。
1. Math类:这是Java中提供基本数学运算的工具类。
它包含的方法可以进行基本的运算,如加减乘除、取整、取余等。
此外,Math类还提供了一些常用的数学函数,如指数函数、对数函数、三角函数等。
2. BigDecimal类:在Java中,浮点数的精度是有限的,可能会导致精度丢失的问题。
为了解决这个问题,可以使用BigDecimal类进行高精度计算。
BigDecimal类提供了方法来执行加减乘除等基本运算,同时具有设置精度和舍入模式的功能。
3. Random类:这个类提供了生成伪随机数的方法。
可以使用Random类来生成随机的整数、浮点数或布尔值。
另外,Random类还可以生成符合特定分布的随机数。
4. BitSet类:BitSet类用于处理位数据,它提供了一组方法来操作位集合。
使用BitSet类可以进行位运算,如位与、位或、位异或等。
此外,BitSet类还提供了方法来进行位集合的操作,如设置位、清除位、翻转位等。
5. Calendar类:这个类用于处理日期和时间。
Calendar类提供了一组方法来获取日期和时间的各个部分,如年、月、日、时、分、秒等。
它还提供了一组方法来进行日期和时间的计算和格式化。
6. Arrays类:这个类用于处理数组。
Arrays类提供了一组方法来对数组进行排序、查找、比较等操作。
它还提供了方法来生成数组的字符串表示。
9. BigInteger类:与BigDecimal类类似,BigInteger类用于处理大整数运算。
它提供了一组方法来进行基本运算,如加减乘除、取模等。
BigInteger类还提供了方法来处理特定的整数操作,如计算阶乘、计算幂等。
10. DecimalFormat类:这个类用于格式化数值。
DecimalFormat类提供了一组方法来控制数值的格式,如设置小数位数、设置千位分隔符、设置正负号等。
实用类1、枚举:a、关键字enum;b、可以定义枚举常量;c、还可以定义普通类的成员,包括构造方法(构造方法必须是私有访问级别)d、枚举语法:注:枚举必须首先定义枚举常量,如果枚举中除了枚举常量还要定义其他成员,那么枚举常量的列表必须以;结尾;使用String类操作字符串一、1、String类位于ng包中,默认情况下,该包被自动导入所有的程序。
2、创建一个String 对象:String s = “Hello World”;或是:String s = new String(“Hello Wold”);二、1、获取字符串长度:字符串.length();* 返回字符串长度;例:Public class Register{Public static void main(String []args){Scanner input = new Scanner(System.in);String uname,pwd;System.out.println(“请输入用户名:”);Uname = intpu.next();System.out.println(“请输入密码:”);Pwd = input.next();If(pwd.length()> = 6){System.out.println(“注册成功”);System.out.println(“用户名:”+uname+”\n密码:”+pwd);}else{System.out.println(“密码长度不能小于6位!”);}}}2.字符串比较:字符串1.equals(字符串2);*比较俩个值是否相等,返回boolean类型的值true或false;例:Public class Login{Public static void main(String [] args){Scanner input = new Scanner(System.in);String uname,pwd;System.out.println(“请输入用户名:”);uname=input.next();System.out.println(“请输入密码:”);pwd = input.next();if(uname.equals(“TOM” )&& pwd.equals(“123456”)){System.out.println(“登录成功!!!”);}else{System.out.println(“用户名或密码不匹配,登录失败!!”);}} }“==”与“equals()”的区别:双等号(==)判断的是俩个字符串对象在内存中的首地址,就是判断是否是同一个字符串对象;equals() 判断的是俩个字符串对象的值;注:a、在使用equals()方法比较俩个字符串时,对于字符的大小写,也在检查范围之内;b、equalsIgnoreCase()方法比较字符串时忽略字符的大小写;3、改变字符串中字符的大小写:toLowerCase() : 转换字符串中的英文字母为小写;toUpperCase() : 转换字符串中的英文字母为大写;语法:字符串.toLowerCase();字符串.toUpperCase();4、字符串的连接:在java中String提供了concat() 方法将一个字符串连接到另一个字符串后面。
java的基本类型Java是一门非常流行的编程语言,而在Java编程中,基本类型是必不可少的一部分。
在本文中,我们将详细介绍Java的基本类型,包括它们的类型、大小、取值范围等。
Java的基本类型包括8种,分别为:byte、short、int、long、float、double、char和boolean。
下面我们将逐一介绍它们的特点。
1. byte类型byte类型是Java中最小的整数类型,它占用1个字节(8位),可以存储范围在-128到127之间的整数。
它通常用于节省存储空间,例如在处理大量数据时,可以使用byte类型来存储每个数据的状态。
2. short类型short类型是比byte类型稍大的整数类型,它占用2个字节(16位),可以存储范围在-32768到32767之间的整数。
它通常用于需要节省存储空间的情况,例如在处理音频或视频数据时,可以使用short 类型来存储每个采样点的值。
3. int类型int类型是Java中最常用的整数类型,它占用4个字节(32位),可以存储范围在-2147483648到2147483647之间的整数。
它通常用于存储整数类型的数据,例如计数器、索引等。
4. long类型long类型是比int类型更大的整数类型,它占用8个字节(64位),可以存储范围在-9223372036854775808到9223372036854775807之间的整数。
它通常用于需要存储非常大的整数类型的数据,例如时间戳、文件大小等。
5. float类型float类型是Java中的浮点数类型,它占用4个字节(32位),可以存储范围在-3.4028235E+38到3.4028235E+38之间的浮点数。
它通常用于需要存储小数类型的数据,例如温度、湿度等。
6. double类型double类型是比float类型更大的浮点数类型,它占用8个字节(64位),可以存储范围在-1.7976931348623157E+308到1.7976931348623157E+308之间的浮点数。
java中的8⼤基本类型及对象简单描述⼀、8⼤基本类型8⼤基本类型主要分为4类:整型、⼩数类型、真假类型和字符类型。
1、整型包含:byte、short、int、long,分别对应1、2、4、8个字节。
2、⼩数类型包含:float、double,分别对应4、8个字节。
3、真假类型 即为boolean,只含true,false两个值,所以可以看做1字节。
但是在《Java虚拟机规范》中,有如下描述:“在Java虚拟机中没有任何供boolean值专⽤的字节码指令,Java语⾔表达式所操作的boolean值,在编译之后都使⽤Java虚拟机中的int数据类型来代替,⽽boolean 数组将会被编码成Java虚拟机的byte数组,每个元素boolean元素占8位“,即:单独使⽤boolean时占⽤了4字节,单在数组中boolean只占⽤1字节。
4、字符类型 即为char,表⽰单个字符,⼀般看做是2字节。
char在设计之初的时候被⽤来存储字符,两个字节可以存储2^16(65536)种字符,这个数量符合⼤多数国家的语⾔字符个数,于是Java团队使⽤unicode作为编码,⼀个char作为2个字节来存储。
但是,unicode只是⼀个标准,具体的实现还是有如:UTF-8或UTF-16等编码。
Java的char⼀定是2个字节吗? 不⼀定,与我们使⽤的字符集有关系,如果使⽤unicode编码,是2字节,使⽤ASCII编码时,char只占⽤1字节,如果使⽤UTF-8编码格式呢?UTF-8是不定长编码,编码的长度是动态的,所以不⼀定。
char能存储中⽂吗? 这个问题依旧归结于使⽤的编码集,如果使⽤ASCII,那肯定不能存储,如果采⽤UTF-8编码,则可以。
⼆、对象 对象是由8⼤基本数据类型、数组和其他对象组合⽽成的东西。
世界万物都由元素周期表中的基本元素组成,8⼤基本类型就相当于化学中的元素周期表,⽽对象就相当于世界万物。
我们从看API文档都知道,JA V A提供了一些常用类,如String,Math,BigDecimal 等的用法。
String ,StringBuffer,,StringBuilder类字符串就是一连串的字符序列,JA V A提供了String 和StringBuffer两个类来封装字符串,并提供了系列方法来操作字符串对象。
String类是不可变类,即一旦一个String对象被创建以后,包含在这个对象中的字符序列是不可改变的,直至这个对象被销毁。
StringBuffer对象则代表一个字符序列中变的字符串,当一个StringBuffer被创建以后,通过StringBuffer提供的append,insert,reverse,setCharAt,setLength等方法可以改变这个字符串对象的字符序列。
一旦通过StringBuffer生成了最终想要的字符串,就可以调用它的toString方法将其转换为一个String对象。
JDK1.5后面增加了StringBuilder类。
它也代表了字符串对象。
实际上StringBuilder 和StringBuffer基本相似,两个类的构造器和方法基本相同。
不同的是StringBuffer是线程安全的,而StringBuilder则没有实现线程安全功能,所以以性能略高,因此我们需要创建一个内容可变的字符串对象,应该优先考虑使用StringBuilder类。
String类提供了大量构造器来创建String对象,具体大家查看API文档吧,我就不想写了。
char charAt(int index):取字符串中的指定位置的字符,其中,参数index指的是字符串中序数,字符串的序数从0开始,这个大家学过数组的都知道,我就不想多说了。
String s = new String("abcdefghijklmnopqrstuvwxyz");System.out.println("s.chatAt(5)"+s.charAt(5));//输出的结果是:fint compareT0(String anotherString):拿当前String对象与anotherString比较。
java 常用数据类型Java是一门强类型语言,它要求在使用变量之前必须先声明变量的数据类型。
Java的数据类型分为两大类:基本数据类型和引用数据类型。
下面我们来介绍一下Java常用的数据类型。
1. 基本数据类型Java的基本数据类型有8种,分别是byte、short、int、long、float、double、char和boolean。
①byte类型:占用1个字节,取值范围为-128~127,表示8位有符号整数。
②short类型:占用2个字节,取值范围为-32768~32767,表示16位有符号整数。
③int类型:占用4个字节,取值范围为-2147483648~2147483647,表示32位有符号整数。
④long类型:占用8个字节,取值范围为-9223372036854775808~9223372036854775807,表示64位有符号整数。
⑤float类型:占用4个字节,取值范围为-3.4028235E38~3.4028235E38,表示单精度浮点数。
⑥double类型:占用8个字节,取值范围为-1.7976931348623157E308~1.7976931348623157E308,表示双精度浮点数。
⑦char类型:占用2个字节,取值范围为0~65535,表示Unicode字符。
⑧boolean类型:只有两个取值,true和false,表示逻辑值。
2. 引用数据类型Java的引用数据类型包括类、接口、数组等。
①类:类是一种引用数据类型,用于定义对象的属性和方法。
②接口:接口是一种引用数据类型,用于定义抽象方法。
③数组:数组是一种引用数据类型,用于存储同一类型的多个元素。
java常用的8种数据类型及取值范围Java是一种广泛使用的编程语言,它具有完善的数据类型系统,适用于各种应用程序。
Java中包含了8种基本数据类型,分别是byte、short、int、long、float、double、char和boolean。
在编写Java应用程序时,熟悉这些数据类型及其取值范围非常重要。
下面,我们将分步骤地阐述Java 8种数据类型的取值范围。
1. bytebyte是一种整数类型,占用1个字节,可以表示-128到127之间的值。
byte类型通常用于节省内存空间。
2. shortshort是另一种整数类型,占用2个字节,可以表示-32768到32767之间的值。
与byte类型类似,short类型通常用于节省内存空间。
3. intint是最常用的整数类型,占用4个字节,可以表示-2147483648到2147483647之间的值。
在Java应用程序中,经常使用int类型来表示变量或计数器。
4. longlong是比int类型更大的整数类型,占用8个字节,可以表示-9223372036854775808到9223372036854775807之间的值。
long类型通常用于需要精确计算时间或日期的情况。
5. floatfloat是一种浮点数类型,占用4个字节,可以表示大约7位小数。
float类型通常用于需要进行科学计算的情况,比如计算圆周率。
6. doubledouble是另一种浮点数类型,占用8个字节,可以表示大约15位小数。
double类型通常用于需要更高精度计算的情况,比如计算复杂函数。
7. charchar是一种字符类型,占用2个字节,可以表示Unicode字符集中的任意字符。
char类型通常用于处理字符串和文本数据。
8. booleanboolean是一种布尔类型,只占用1个字节,可以表示true或false 两个值。
boolean类型通常用于控制程序的流程和执行。
总之,了解Java的八种数据类型及其取值范围是编写高质量Java应用程序的重要基础。
例:String inputLine = scan.nextLine();StringTokenizer wordFinder =new StringTokenizer(inputLine, " \n.,");while(wordFinder.hasMoreTokens()){System.out.println(wordFinder.nextToken());}(2)FileReader注意:可以接文件名。
二、二进制文件(Binary File)1、输出(output)类(to the file)(1)ObjectOutputStream注意:不可以接文件名,可通过套用FileReader来实现。
例如:ObjectOutputStream outputStream=new ObjectOutputStream(new FileOutputStream("numbers.dat"));常用方法:writeInt(int n),writeDouble(double x),writeBoolean(boolean b),writeUTF(String s),writeChar((int) 'A')写入数值,close():保存并关闭文件。
(2)FileOutputStream注意:可以接文件名。
2、输入(input)类(from the file)(1)ObjectInputStream注意:不可以接文件名,可通过套用FileReader来实现。
例如:ObjectInputStream inStream =new ObjectInputStream (new FileInputStream("numbers.dat"));常用方法:readInt(),readDouble(),readBoolean()读取数值,close():保存并关闭文件。
public static void main(String[] args) {String str1;str1 = "你好";// 使用字符串常量构造一个字符串String str2 = new String("你好");// String类中重写了父类Object类的equals方法// String类中的equals方法比较的是字符串的内容// 使用String类中的equals方法时,建议将字符串常量写在前面String str3 = null;System.out.println("你好".equals(str3));//正确写法//System.out.println(str3.equals("你好"));//错误写法// 使用equals方法System.out.println(str1.equals(str2));//trueSystem.out.println(str1 == str2);//false// 使用char数组构造一个字符串char [] ch1 = {'a', 'b', 'c'};String str4 = new String(ch1); System.out.println("str4: " + str4);char [] ch2 = {'a', 'b', 'c', 'd', 'e', 'f'}; String str5 = new String(ch2, 2, 2); System.out.println("str5: " + str5);// 使用byte数组构造一个字符串//byte [] by1 = {-50, 3, 100};byte [] by1 = "测试".getBytes();String str6 = new String(by1); System.out.println("str6: " + str6);// String类中的equals方法和等号String str7 = "西安网星";String str8 = "西安网星";System.out.println(str7.equals(str8));//trueSystem.out.println(str7 == str8);//true// length():获取字符串的长度System.out.println(str7.length());//4// isEmpty():判断字符串手不是为空System.out.println(str7.isEmpty());//false// charAt(int index):获取指定位置上的字符System.out.println(str7.charAt(2));//网// equalsIgnoreCase:忽略大小写比较String str9 = "abccdabc";String str10 = "ABccdabc";System.out.println(str9.equals(str10));//falseSystem.out.println(str9.equalsIgnoreCase(str10));//tru e// startsWith:判断某个字符串以什么开始// endsWith:判断某个字符串以什么结尾System.out.println(str9.startsWith("a"));//trueSystem.out.println(str9.startsWith("a", 2));//falseSystem.out.println(str9.endsWith("c"));//true//String str9 = "abccdabc";// indexOf:从开始位置查找出指定字符串在已有字符串中的位置// lastIndexOf:从结尾位置查找出指定字符串在已有字符串中的位置System.out.println(str9.indexOf("bc"));//1System.out.println(str9.indexOf("ac"));//-1System.out.println(str9.indexOf("bc", 2));//6System.out.println(stIndexOf("ab"));//5System.out.println(stIndexOf("ab", 4));//0// substring:截取字符串,包括指定开始位置本身System.out.println(str9.substring(4));//dabc// substring:截取字符串,包括指定开始位置本身,结束位置不包括System.out.println(str9.substring(4, 7));//dabSystem.out.println(str9.substring(4,str9.length()));//dabcString str11 = "test.jpg";System.out.println(str11.substring(4,str11.length()));//.jpg// concat:连接字符串System.out.println(str9.concat(str11));//abccdabctest.j pgSystem.out.println(str9 + str11);//abccdabctest.jpg// contains:包含某个字符串System.out.println(str11.contains("."));//true// replace:字符串替换System.out.println(str11.replace("test", "my"));//my.jpg// split:分割字符串String str12 = "test.jpg";//String[] strs = str12.split("\\.");String[] strs = str12.split("t");System.out.println(strs.length);for(int i = 0; i < strs.length; i++){System.out.println("strs[" + i + "]=" + strs[i]);//str[0]=aa}// toLowerCase():转换成小写// toUpperCase():转换成大写System.out.println(str12.toLowerCase());//test.jpgSystem.out.println(str12.toUpperCase());//TEST.JPG // trim():去前后空格String str13 = " abc ";System.out.println(str13.length());//5String str14 = str13.trim();System.out.println(str14);System.out.println(str14.length());//3// regionMatches:测试两个字符串区域是否相等。
String str15 = "abcdefghijk";String str16 = "abcdefghijk";boolean flag = str15.regionMatches(0, str16, 0, str16.length());System.out.println("flag: " + flag);//trueflag = str15.regionMatches(1, str16, 1, str16.length() - 1);System.out.println("flag: " + flag);//trueflag = str15.regionMatches(3, str16, 3, 6);//str16="defg"System.out.println("flag: " + flag);//true// 将“数字”组成的字符串转换为基本数据类型int a = Integer.parseInt("1111");System.out.println(a);float f = Float.parseFloat("23.45F");System.out.println(f);double d = Double.parseDouble("11.22");System.out.println(d);// 将基本数据类型转换为字符串String s1 = String.valueOf(a);String s2 = String.valueOf(f);String s3 = String.valueOf(d);/*// equals()// ==A a1 = new A();A a2 = new A();System.out.println(a1.equals(a2));//falseSystem.out.println(a1 == a2);//false*/}}public static void main(String[] args) {// 字符串与字节数组相互转化String s1 = "欢迎来abc到网星!";// 将字符串转换成字节数组byte [] bytes = s1.getBytes();// 将字节数组转换成字符串String s2 = new String(bytes);System.out.println(s2);System.out.println("---------------------");try {// 将字符串转换成字节数组bytes = s1.getBytes("GBK");// ISO-8859-1 UTF-8 GBK// 将字节数组转换成字符串s2 = new String(bytes,"GBK");System.out.println(s2);System.out.println("---------------------");bytes = s1.getBytes("UTF-8");// ISO-8859-1 UTF-8 GBKs2 = new String(bytes,"UTF-8");System.out.println(s2);System.out.println("---------------------");bytes = s1.getBytes("ISO-8859-1");// ISO-8859-1 UTF-8 GBKs2 = new String(bytes,"ISO-8859-1");System.out.println(s2);//乱码} catch (UnsupportedEncodingException e) {e.printStackTrace();}}}public static void main(String[] args) {String s1 = "你好";String s2 = s1.concat("张三");System.out.println(s2);// 动态修改字符串的内容StringBuilder sb1 = new StringBuilder("你好"); sb1.append("张三");System.out.println(sb1);// 获取指定位置上的字符char ch = sb1.charAt(3);//三System.out.println(ch);// 在指定位置插入字符串sb1.insert(2, "干啥");System.out.println(sb1);//你好干啥张三// 字符串反转sb1.reverse();System.out.println(sb1);//三张啥干好你// 在指定位置删除字符串sb1.delete(2, 4);System.out.println(sb1);//三张好你sb1.reverse();// 在指定位置替换字符串sb1.replace(2, 4, "李四");System.out.println(sb1);//你好李四}}public static void main(String[] args) {Date d1 = new Date();System.out.println(d1);//d1.toString()Date d2 = new Date(1000);System.out.println(d2);//d2.toString()Date d3 = new Date(00L);System.out.println(d3);//d3.toString()System.out.println(System.currentTimeMillis());//00 Date d4 = new Date(35L);System.out.println(d4);//d4.toString()// 日期格式化SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss.SSS E");// 将日期类型转换为字符串String dateStr = sdf.format(d4);System.out.println("dateStr: " + dateStr);// 把(日期)字符串转换为日期类型try {Date d5 = sdf.parse(dateStr);System.out.println("d5: " + d5);} catch (ParseException e) {e.printStackTrace();}System.out.println("------------------------------------------");// 日期格式化SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss", );// 将日期类型转换为字符串String dateStr1 = sdf1.format(d4);System.out.println("dateStr1: " + dateStr1);public static void main(String[] args) {//c产生绝对值System.out.println(m);double d1 = Math.random();System.out.println(d1);// 产生1到8之间的随机数int n = (int)(Math.random() * 8) + 1;System.out.println(n);// 产生1到100之间的随机数n = (int)(Math.random() * 100) + 1;System.out.println(n);int a = Math.round(3.5643F);System.out.println("a: " + a);a = Math.round(3.4643F);System.out.println("a: " + a);double d2 = Math.sqrt(8);//求平方根System.out.println("d2: " + d2);System.out.println("--------------------------");// 数字格式化:普通数字、百分比、货币形式NumberFormat nFormat = NumberFormat.getInstance();nFormat.setMaximumFractionDigits(7);//设置小数部分的最大位数nFormat.setMinimumIntegerDigits(3);//设置整数部分的最小位数String s = nFormat.format(d2);System.out.println("8的平方根格式化后:"+s);System.out.println("--------------------------");// 设置语言地区//Locale locale = Locale.getDefault();//java.util.Locale//Locale locale = ;//zh_CN, en_US, en_GB, zh_HKLocale locale = new Locale("en", "GB");System.out.println(locale);/*nFormat = NumberFormat.getCurrencyInstance();Currency currency = Currency.getInstance(locale);nFormat.setCurrency(currency);*/nFormat = NumberFormat.getCurrencyInstance(locale);String string = nFormat.format(0.35);System.out.println(string);//$0.35//HK$0.35//¥0.35System.out.println("--------------------------");Random random = new Random();// java.util.Randomn = random.nextInt(8) + 1;System.out.println("n=" + n);/ 正则表达式public class RegexDemo {public static void main(String[] args) {、String regex = "\\dhello";boolean flag = s1.matches(regex);String result = flag ? "匹配成功" : "匹配失败";System.out.println(result);System.out.println("-----------------------");s1 = "029-";regex = "[0]\\d{2,3}-[2-8]\\d{6,7}";flag = s1.matches(regex);result = flag ? "匹配成功" : "匹配失败";System.out.println(result);}。