`
strong_fee
  • 浏览: 175364 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

读《Java核心技术卷I 》Java数据类型

    博客分类:
  • Java
阅读更多

1.   Java整形

类型

存储需求

取值范围

int

4字节

-2 147 483 648 ~ 2 147 483 647

short

2字节

-32 768 ~ 32767

long

8字节

...

byte

1字节

-128~127

 

长整形有一个后缀L,十六进制有一个前缀0x,八进制有有一个前缀0

浮点型有两种:float4字节),double8字节)。小数默认为double类型,可以在小数后加D表示,当小数后标注F时表示float类型。所以将一个小数赋值给一个浮点变量时,无法通过编译,需要强制转化或者在小数后加F

命令System.out.println(2.0-1.0);打印出0.8999999999999999,而不是0.9,因为浮点数值是采用二进制系统表示的,而在二进制系统中无法精确表示1/10,就像十进制无法表示1/3一样。

char(16)boolean只有两个值,区别于C++,当把非truefalse的值赋值给boolean变量时,编译通不过。

2.   特殊字符的转义序列符

转义序列

名称

Unicode

\b

退格

\u0008

\t

制表

\u0009

\n

换行

\u000a

\r

回车

\u000d

\”

双引号

\u0022

\’

单引号

\u0027

\\

反斜杠

\u005c

3.   判定Unicode字符是否属于字母的方法可以使用Character中的JavaIdentifierStart JavaIdentifierPart方法。

4.   常量用final修饰;类常量用static final设置,可以在一个类中的多个方法中使用;如果类常量被设置为public,则其他类的方法也可以使用这个常量。类常量定义于main方法的外部,使用方法如:

     public class Constants2{

         public static void main(String[] args){

              double paperWidth=8.5;

              double paperHeight=11;

              System.out.println(“Paper size in centimeters:”+

paperWidth*CM_PER_INCH+”by”+paerHeight*CN_PER_INCH);

}

public static final double CM_PER_INCH=2.54;

}

5.   三元运算符的表示方法:x<y?x:y

6.   JDK5.0开始,不必再数学方法名前添加前缀“Math.,而只需在头文件的顶部添加下列代码就可以了:import static java.long.Math.(静态导入)

7.   数值之间的合法转换

byteàshortàintàlongàfloatàdouble

charàint

强制类型转化的语法格式是在圆括弧中给中想要转化的目的类型,随后紧跟待转化的变量名。如,

double x=9.997

int nx=(int)x;

8.   运算符优先级(从上到下递减,同行相同)

[].()(方法调用)

! ++ -- +/-(一元运算) ()强制类型转换 new

* / %

+ -

<< >> >>>

< <= > >= instanceof

== !=

&

^

|

&&

||

?:

= += -= *= /= %= |= ^= <<= >>= >>>=

9.   String

     (1)  构造方法

         1)   构造空字符串String();

         2)   利用字节数组构造String(byte[] bytes);

         3)   利用字符数组构造 String(byte[] chars);

     (2)  比较

compareTo(String anotherString):大于参数字符串则返回一个大于0的值,=则返回0,小于则返回一个小于0的值

         compareToIgnoreCase(String str);不考虑大小比较两个字符串

         equals(Object anObject):比较字符串与制定的对象

         equalsIgnoreCase(String anotherString):不考虑大小比较

     (3)  索引

         indexOf(int ch):返回制定字符在此字符串第一次出现处的索引

         indexOf(int ch, int fromIndex);

         lastIndexOf返回最后一次出现的指定字符在此字符串中的索引

         indexOf(String str):返回第一次出现的制定字符串中的索引

         indexOf(String str, int fromIndex);

     (4)  返回长度

         length();

     (5)  替换

         String repalce(char oldChar, char newChar) newChar替换此字符串中出现的所有oldChar

         Sting replaceAll(String regex, String replacement) 使用给定的replacement字符串替换此字符串与正则表达式匹配的每个子字符串

         String replaceFirst(String regex,Stirng replacement)

         String[] split(String regex) 根据正则表达式的匹配来拆分此字符串

         String[] split(String regex, int limit) 其中,limit参数控制模式应用的次数,因此影响结果数组的长度。如果limit>0,则模式将被应用n-1次,数组的长度将不会大于n,数组的最后项将包含超出最后匹配的定界符的所有输入。如果limit为非正,模式将被应用尽可能多的次数,而且数组可以是任意长度。

     (6)  匹配

         endsWith(String suffic):测试此字符串是否以指定的后缀结束

         startsWith(String prefix);测试此字符串是否以之地鞥的前缀开始

         startsWith(String prefix, int toffset) 从指定索引开始,...

     (7)  子串

         subString(int beginIndex, int endIndex) 返回所以区间[beginIndex, endIndex)的子串

         subString(int beginIndex) 返回beginIndex到末尾的子串

     (8)  编辑

         char[] toCharArray()将此字符串转化为一个新的字符数组。

          String toUpperCase()

         String toLowerCase()

         trim() 返回字符串的副本,忽略前导空白和尾部空白

     (9)  值传递

         String valueOf(char c);

         String valueOf(char[] data, int offset, int count);其中offset为子数组的第一个字符的索引,count参数为Stirng值的长度。

     (10) 检测字符串是否相等

         s.equal(t),其中st既可为常量也可为变量。不区分大写写比较可用函数

s.equalIgnoreCase(t).

==运算符用来检测的是否放在同一位置,

字符串常量是共享的,即所有的字符串常量放在同一个存储池中。

10.  Swing 对话框的使用(java.swing.*)

     String input=JOptionPane.showInputDialog(promptString);

     返回值是用户输入的字符串,promptString为提示信息。如果需要返回的数值或Double,可以通过Integer.parseInt(input);Double.parseDouble(input).

11.  c++中,可以在嵌套的块中重定义一个变量,在内层定义的变量会覆盖在外层定义的变量。在Java中不允许这样的重定义。

     for循环的初始段定义的变量的作用范围是整个for循环。

     switch的语法格式:

     switch(choice){

         case 1:

             

              break;

         default:

             

              break;

}

特殊的breakcontinue的用法:

label:

{

     if(condition) break label;

}

//jump here when the break statement executes

label:的后面没有{}时,则跳转后它的后一个语句块,入if执行后面的语句一样。continue的用法同理。

12.  大数值

     BigIntegerBigDecimal(java.math)可处理任意长度的数值,其中BigInteger实现了任意精度的整数运算,BigDecimal实现了任意精度的浮点数运算。

     (1)  将普通的数值转化为大数值,如BigInteger a=BigInteger.valueOf(100);

     (2)  不能使用普通的运算符号,替代为:

         add,subtract,mutiply,divide,mod

     (3)  比较:compareTo,相等返回0,小于返回负数,大于返回整数。

13.  数组

(1)  申明数组的两种形式:

          int[] a=new int[100]; 或者 int a[]=new int[100];

          获取数组中的元素个数:a.length

          for each循环:

         语法:   for(int element:a){

    

}

         其中,a是数组或者是实现了iterator的类如(ArrayList

     (2)  java中的数组相当于C++中的数组指针,不过只能做[]运算,不能对数组变量作+运算来取地址。

(java.lang.)System.arrayCopy(from,fromIndex,to,toIndex,count);方法实现将一个数组from从索引fromIndexcount个元素拷贝到to的以索引toIndex为下表的后面。

     (3)  Arrays.sort(a);//实现数组的从小到大排序。

         (java.util.)Arrays提供的其他常用静态方法:

1)   static int binarySerch(type[]a,type v)

erayutil.();x.y();

     使用二分查找自a中找v

     2)   static void fill(type[] a, type v);

         将数组的所有元素设置为v

     3)   static  boolean equals(type[] a, type[] b);

         如果两个数组的长度相同,并且下表相同的元素都对应相等,则返回true

     (4)  数组初始化以及匿名数组

         初始化:int smallPrimers={1,2,3};

         申明匿名数组:new int[]{1,2,3}

         可以将一个匿名数组赋值给一个数组变量:int smallPrimer=new int[]{1,2,3}

14.  (1)  二维数组的申明:

         double[][] balances;

         balances=new double[NYEARS][NRATES];

     (2)  二维数组的初始化:

         int[][] magicSqure=

{

     {16,3,2},

     {4,15,4}

};

     (3)  由于可以单独地存取数组的某一行,所以可以对两行进行交换或其他操作。

     (4)  当需要创建不规则的数组时,可以单独分配各行的空间。如:

         int[][] olds=new int[MMAX+1][];

         for(int n=0;n<=MMAX;n++){

              odds[n]=new int[n+1];

}

分享到:
评论

相关推荐

    Java2核心技术.part5

    Java2核心技术第I卷.基础知识 目录: 译者序 前言 第1章Java程序设计概述 1.1 Java程序设计平台 1.2 Java“白皮书”的关键术语 1.2.1简单性 1.2.2面向对象 1.2. 3分布式 1. 2.4健壮性 1. 2.5安仝...

    Java 2核心技术,卷I:基础知识(第七版).part1

    Java 2核心技术,卷I:基础知识(第七版) &lt;br&gt; http://images.amazon.cn/b/bkbk615637.jpg&lt;br&gt;&lt;br&gt;【原 书 名】 Core Java 2, Volume I - Fundamentals, Seventh Edition 【原出版社】 Prentice Hall PTR ...

    Java 2核心技术,卷I:基础知识(第七版).part2

    Java 2核心技术,卷I:基础知识(第七版) &lt;br&gt; http://images.amazon.cn/b/bkbk615637.jpg&lt;br&gt;&lt;br&gt;【原 书 名】 Core Java 2, Volume I - Fundamentals, Seventh Edition 【原出版社】 Prentice Hall PTR ...

    Java 2核心技术,卷I:基础知识(第七版).part3

    Java 2核心技术,卷I:基础知识(第七版) &lt;br&gt; http://images.amazon.cn/b/bkbk615637.jpg&lt;br&gt;&lt;br&gt;【原 书 名】 Core Java 2, Volume I - Fundamentals, Seventh Edition 【原出版社】 Prentice Hall PTR ...

    java教程课件5基本数据类型与引用类型

    java.applet:包含一些用于创建Java小应用程序的类。...java.lang:包含一些Java语言的基本类与核心类,如String、Math、Integer、System和Runtime,提供常用的功能,这个包中的所有类是被隐式导入的。

    Java核心技术II(第8版)

    1.7 新I/O 1.7.1 内存映射文件 1.7.2 缓冲区数据结构 1.7.3 文件加锁机制 1.8 正则表达式 第十二章 XML 2.1 XML概述 2.1.1 XML文档的结构 2.2 解析XML文档 2.3 验证XML文档 2.3.1 文档类型定义 2.3.2 XML Schema ...

    Java2核心技术.part3

    Java2核心技术第I卷.基础知识 目录: 译者序 前言 第1章Java程序设计概述 1.1 Java程序设计平台 1.2 Java“白皮书”的关键术语 1.2.1简单性 1.2.2面向对象 1.2. 3分布式 1. 2.4健壮性 1. 2.5安仝...

    Java2核心技术.part1

    Java2核心技术第I卷.基础知识 目录: 译者序 前言 第1章Java程序设计概述 1.1 Java程序设计平台 1.2 Java“白皮书”的关键术语 1.2.1简单性 1.2.2面向对象 1.2. 3分布式 1. 2.4健壮性 1. 2.5安仝性 1. 2.6...

    Java2核心技术.part6

    Java2核心技术第I卷.基础知识 目录: 译者序 前言 第1章Java程序设计概述 1.1 Java程序设计平台 1.2 Java“白皮书”的关键术语 1.2.1简单性 1.2.2面向对象 1.2. 3分布式 1. 2.4健壮性 1. 2.5安仝...

    Java2核心技术.part4

    Java2核心技术第I卷.基础知识 目录: 译者序 前言 第1章Java程序设计概述 1.1 Java程序设计平台 1.2 Java“白皮书”的关键术语 1.2.1简单性 1.2.2面向对象 1.2. 3分布式 1. 2.4健壮性 1. 2.5安仝...

    Java2核心技术.part2

    Java2核心技术第I卷.基础知识 目录: 译者序 前言 第1章Java程序设计概述 1.1 Java程序设计平台 1.2 Java“白皮书”的关键术语 1.2.1简单性 1.2.2面向对象 1.2. 3分布式 1. 2.4健壮性 1. 2.5安仝...

    JAVA_API1.6文档(中文)

    javax.sql.rowset.serial 提供实用工具类,允许 SQL 类型与 Java 编程语言数据类型之间的可序列化映射关系。 javax.sql.rowset.spi 第三方供应商在其同步提供者的实现中必须使用的标准类和接口。 javax.swing 提供...

    Java 基础核心总结 +经典算法大全.rar

    数据类型基础语法运算符 Java 执行控制流程条件语句 if 条件语句 if...else 条件语句if...else if 多分支语句switch 多分支语句 循环语句 while 循环语句do...while 循环for 循环语句 跳转语句 break 语句 continue ...

    Java 1.6 API 中文 New

    javax.sql.rowset.serial 提供实用工具类,允许 SQL 类型与 Java 编程语言数据类型之间的可序列化映射关系。 javax.sql.rowset.spi 第三方供应商在其同步提供者的实现中必须使用的标准类和接口。 javax.swing 提供一...

    java基础核心总结归纳---参考手册--心得手册-学习资料-总结经验

    数据类型 7 整数型 7 浮点型 7 字符型 8 布尔型 8 基础语法 8 运算符 8 Java 执⾏控制流程 11 条件语句 11 if语句 11 if...else 条件语句 11 if...else if 多分⽀语句 11 switch 多分⽀语句 11 循环语句 12 while ...

    涵盖了 Java 基础、集合、源码、并发、虚拟机、框架、数据库、网络编程、设计模式、新特性和数据结构等多个知识领域的面试突击

    Java核心技术:I/O、多线程、网络编程、反射、泛型等 Java虚拟机:内存模型、垃圾收集器、类加载机制等 Java企业级开发:Spring、Hibernate、MyBatis等框架原理 数据库和缓存:SQL优化、索引、Redis、Memcached等 分布式...

    JavaAPI1.6中文chm文档 part1

    javax.sql.rowset.serial 提供实用工具类,允许 SQL 类型与 Java 编程语言数据类型之间的可序列化映射关系。 javax.sql.rowset.spi 第三方供应商在其同步提供者的实现中必须使用的标准类和接口。 javax.swing 提供...

    java api最新7.0

    javax.sql.rowset.serial 提供实用工具类,允许 SQL 类型与 Java 编程语言数据类型之间的可序列化映射关系。 javax.sql.rowset.spi 第三方供应商在其同步提供者的实现中必须使用的标准类和接口。 javax.swing 提供一...

Global site tag (gtag.js) - Google Analytics