Java核心技术 卷Ⅰ 基础知识(1)

第三章 Java的基本程序设计结构

  • Java对大小写敏感
  • 命名规范为骆驼命名法,不能使用保留字
  • main方法必须声明为public
  • 如果main方法正常退出,java应用程序的退出代码为0,表示成功运行了程序。如果希望终止程序时返回其他代码,那就需要调用System.exit方法。
  • Java通用语法是 object.method(parameter),这等价于函数调用
  • System.out.print输出不换行
  • 三种注释方式 //、 /*  */(不能嵌套)、第三种可以用来自动生成文档
  • Java是一种强类型语言,八种基本类型,四种整型,两种浮点型,一种用于表示Unicode编码的字符单元的字符类型char和一种用于表示真值的boolen类型
  • byte和short主要用于特定的应用场合,例如,底层文件处理或需要控制占用存储空间量的大数组。
  • 数据类型取值固定,所以不会发生整数溢出
  • 从java7开始,还可以为字面量加下划线,如用1_000_000表示一百万,编译器会去除下划线
  • java中,所有的数值类型所占据的字节数量与平台无关,没有任何无符号类型(unsigned)
  • double的数值精度是float的两倍
  • 实际上,只有很少的情况适合试用float类型,例如,需要快速地处理单精度数据,或者需要存储大量数据
  • float类型的数值有一个后缀F,没有默认为double
  • 在JDK5.0中,可以使用十六进制表示浮点数值。例如,0.125可以表示成0x1.0p-3
  • 表示溢出和出错的三个特殊的浮点数值:正无穷大、负无穷大、NaN(不是一个数字)。例如,一个正整数除以0的结果为正无穷大。计算0/0或者负数的平方根结果为NaN
  • 所有“非数值”的值都认为是不相同的,不能用特定值等于Double.NaN,可以使用Double.isNaN方法
  • 浮点数值不是用于禁止出现舍入误差的金融计算中。例如,System.out.println(2.0-1.1)将打印出0.899999999,主要原因为浮点数值采用二进制表示,无法精确表示分数1/10,就像十进制中无法精确表示1/3一样
  • 我们强烈建议不要在程序中试用char类型,除非确实需要对UTF-16代码单元进行操作。最好将需要处理的字符串用抽象数据类型表示。
  • 在java中,if(x=0)不能通过编译,x=0不能转换为布尔值(整型值和布尔值之间不能进行相互转换)
  • 在java,每一种变量属于一种类型,声明变量示例
  • 想要知道哪些Unicode字符属于Java中的“字母”,可以使用Character类的isJavaIdentifierStart和isJavaIdentifierPart方法进行检测
  • $是一个合法的Java字符,但不要在你自己的代码中使用这个字符,它只用在Java编译器或其他工具生成的名字中。
  • 声明一个变量之后,必须用赋值语句对变量进行显示初始化
  • 在Java中,不区分声明和定义
  • 习惯上,常量名使用全大写
  • 在Java中,经常希望某个常量可以在一个类中的多个方法中使用,通常将这些常量称为类常量,可以使用关键字static final设置一个类常量。如果一个常量被声明为public,那么其他类的方法也可是用这个常量
  • const是Java保留的关键字,但目前没有使用
  • 整数被0除会产生一个异常,浮点数被0除将会得到无穷大或NaN结果
  • 如果将一个类标记为strictfp,这个类中的所有方法都要使用严格的浮点计算
  • 自增运算符和自减运算符
  • 建议不要在其他表达式内部使用++
  • &&和||是按照“短路”方式求值的,如果第一个操作数已经能够确定表达式的值,第二个操作数就不必计算了。若x=0,1/x不被计算,也不会出现除以0的错误
  • x<y?x:y
  • int fourthBitFromRight=(n&0b1000)/0b1000; 如果n是一个整型变量,并且用二进制表示的n从右数第4位为1,返回1,否则0
  • int fourthBitFromRight=(n&1<<3)>>3;  当需要建立位模式屏蔽某位时,使用这两个运算符十分方便
  • >>>运算符将用0填充高位;>>运算符用符号位填充高位;没有<<<运算符
  • Math.sqrt Math.PI Math.E 源文件顶部加 import static java.lang.Math.*; 就不必在数学方法名和常量名前添加前缀“Math.”
  • 如果想得到一个完全可预测的结果比运行速度更重要的话,那么就应该使用StrictMath类
  • 3个虚箭头,表示可能有精度损失的转换
  • 强类型转换
  • round方法返回的是long类型
  • 如果强类型转换超出目标类型表示范围,结果会截断成一个完全不同的值,(byte)300实际值为44


  • 从概念上讲,Java字符串就是Unicode字符序列。
  • String类没有修改字符串的方法,如果真的希望改的话
  • 下列表达式是合法的
  • ==运算符检测两个字符串是否放在同一位置上
  • 实际上,只有字符串常量是共享的,而+或substring等操作产生的结果并不是共享的
  • isSupplementaryCodePoint(int codePoint) 是Character类的一个boolean型方法,用来确定指定字符(Unicode 代码点)是否在增补字符范围内。 通俗的讲,增补字符集就是在基本数据类型的标准老版本基础上升级之后产生的新字符.增补字符使char拜年的复杂但功能更强大。特别是东南亚市场的商业需求。 如果你使用的Unicode2.0版本,中国的GB18030就属于其增补字符集。 i+=2意味着占2个字节。
  • 读取输入
  • 首先需要构造一个Scanner对象,并与“标准输入流”System.in关联


  • 别忘记
  • 现在,已经看到了Java语言的基本程序结构,下一章节将介绍Java中的面向对象的程序设计。
时间: 2024-10-12 23:22:52

Java核心技术 卷Ⅰ 基础知识(1)的相关文章

Java核心技术 卷Ⅰ 基础知识(5)

第11章 异常.断言.日志和调试 处理错误 异常分类 声明已检查异常 如何抛出异常 创建异常类 捕获异常 捕获多个异常 再次抛出异常与异常链 finally子句 带资源的try语句 分析堆栈跟踪元素 使用异常机制技巧 使用断言 启用和禁用断言 使用断言完成参数检查 为文档假设使用断言 记录日志 基本日志 高级日志 修改日志管理器的配置 本地化 处理器 过滤器 格式化器 日志记录最常用的操作 调试技巧

Java核心技术 卷Ⅰ 基础知识(4)

第六章 接口与内部类 接口 特性 接口与抽象类 对象克隆 接口与回调 内部类 使用内部类访问对象状态 内部类的特殊语法规则 局部内部类 匿名内部类 静态内部类 代理 Class[] in=new Class[]{Comparable.class};? 代理类的特性

Java核心技术 卷Ⅰ 基础知识(3)

第五章 继承 继承已存在的类就是复用这些类的方法和域.反射是指在程序运行期间发现更多的类及其属性的能力. . 反射 . 使用反射编写泛型数组代码 继承设计的技巧

Java核心技术 卷Ⅰ 基础知识(2)

第四章 对象与类 基于类的访问权限 静态域 类的设计技巧

JAVA核心技术I---JAVA基础知识(Jar文件导入导出)

一:Jar初识 (一)定义 同c++中的DLL一样 jar文件,一种扩展名为jar的文件,是Java所特有的一种文件格式,用于可执行程序文件的传播. jar文件实际上是一组class文件的压缩包 (二)优势 –jar文件可以包括多个class,比多层目录更加简洁实用–jar文件经过压缩,只有一个文件,在网络下载和传播方面,更具有优势–jar文件只包括class,而没有包含java文件,在保护源文件知识版权方面,能够可以起到更好的作用–将多个class文件压缩成jar文件(只有一个文件),可以规定

JAVA核心技术I---JAVA基础知识(集合set)

一:集合了解 (一)确定性,互异性,无序性 确定性:对任意对象都能判定其是否属于某一个集合 互异性:集合内每个元素都是无差异的,注意是内容差异 无序性:集合内的顺序无关 (二)集合接口HashSet,TreeSet,LinkedHashSet –HashSet (基于散列函数的集合,无序,不支持同步) –TreeSet (基于树结构的集合,可排序的,不支持同步) –LinkedHashSet(基于散列函数和双向链表的集合,可排序的,不支持同步 二:HashSet (一)基础方法 –基于HashM

JAVA核心技术I---JAVA基础知识(不可变对象和字符串)

一:不可变对象 不可变对象(Immutable Object) –一旦创建,这个对象(状态/值)不能被更改了–其内在的成员变量的值就不能修改了. –典型的不可变对象 • 八个基本型别的包装类的对象 • String,BigInteger和BigDecimal等的对象 可变对象(Mutable Object) –普通对象 (一)普通对象:可修改值 //普通对象 genobj go = new genobj(); genobj go2 = go; //两个指针指向一个对象 System.out.pr

JAVA核心技术I---JAVA基础知识(package和import)

一:package 所有的Java类都是放置在同一个目录下面的,因此类之间的相互调用无需显式声明调用. –同一个目录下,两个类的名字不能相同 –文件过多,查找和修改都不易,且容易出 Java支持多个目录放置Java,并且通过package/import/classpath/jar等机制配合使用,可以支持跨目录放置和调用Java package 包,和C++中namespace类似 (一)package使用 在Java类文件的第一句话给出包的名称--->项目目录下的包路径 package net.

JAVA核心技术I---JAVA基础知识(命令行)

一:命令行编译文件 手动在c:\temp创建cn.com.test.Man.java –即c:\temp\cn\com\test\Man.java –c:\temp可以替换成任何路径,后续命令同样替换 编译: –X:\>java c:\temp\cn\com\test\Man.java 运行 –X:\>java -classpath .;c:\temp cn.com.test.Man X代表任意盘符或路径 二:运行class文件 java -classpath .;c:\temp cn.com