第三章 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中的面向对象的程序设计。

 
 

 
 
 
 
 
 
 
 
 
 

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

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

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

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

    第13章 集合 集合接口 具体的集合 在表中,除了Map结尾的类之外,其他类都实现了Collection接口,而以Map结尾的类实现了Map接口. 链表 数组列表 散列集 树集 双端队列 优先级队列 ...

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

    第11章 异常.断言.日志和调试 处理错误 异常分类 声明已检查异常 如何抛出异常 创建异常类 捕获异常 捕获多个异常 再次抛出异常与异常链 finally子句 带资源的try语句 分析堆栈跟踪元素 ...

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

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

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

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

  6. JAVA核心技术I---JAVA基础知识(工具类Arrays和Collections类)

    一:工具类 –不存储数据,而是在数据容器上,实现高效操作 • 排序 • 搜索 –Arrays类 –Collection类 二:Arrays类(处理数组) (一)基本方法 –排序:对数组排序, sort ...

  7. JAVA核心技术I---JAVA基础知识(static关键字)

    一:static特殊关键字用处 –变量 –方法 –类 –匿名方法 二:静态变量:类共有成员 –static变量只依赖于类存在(通过类即可访问),不依赖于对象实例存在. –所有的对象实例,对于静态变量都 ...

  8. Java核心技术卷一基础知识-第14章-多线程-读书笔记

    第 14 章 多线程 本章内容: * 什么是线程 * 中断线程 * 线程状态 * 线程属性 * 同步 * 阻塞队列 * 线程安全的集合 * Collable与Future * 执行器 * 同步器 * ...

  9. Java核心技术卷一基础知识-第11章-异常、断言、日志和调试-读书笔记

    第11章 异常.断言.日志和调试 本章内容: * 处理错误 * 捕获异常 * 使用异常机制的技巧 * 使用断言 * 日志 * 调试技巧 * GUI程序排错技巧 * 使用调试器 11.1 处理错误 如果 ...

随机推荐

  1. C# 字符串加密解密函数

    原文:C# 字符串加密解密函数 using System; using System.Text;using System.Security.Cryptography; using System.IO; ...

  2. Asterisk 未来之路3.0_0001

    原文:Asterisk 未来之路3.0_0001 第一章:电信技术革命 刚开始他们忽视你,然后他们嘲笑你,然后他们向你挑战,最后你赢了 ---Mahatma Ganhdi 在5年前,我最初规划写一本关 ...

  3. leetcode [64] merge tow sorted lists

    之前忘记记录这题了,现在补上. 合并两个有序的list,要求是: Merge two sorted linked lists and return it as a new list. The new ...

  4. SQL Server的链接服务器(MySQL、Oracle、Ms_sql、Access、SYBASE)

    原文:SQL Server的链接服务器(MySQL.Oracle.Ms_sql.Access.SYBASE) 一.使用 Microsoft OLE DB Provider For ODBC 链接MyS ...

  5. jquery无缝滚动效果实现

    demo如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...

  6. lucene简介 创建索引和搜索初步

    lucene简介 创建索引和搜索初步 一.什么是Lucene? Lucene最初是由Doug Cutting开发的,2000年3月,发布第一个版本,是一个全文检索引擎的架构,提供了完整的查询引擎和索引 ...

  7. css优先级机制说明

    原文:css优先级机制说明 首先说明下样式的优先级,样式有三种: 1. 外部样式(External style sheet) 示例: <!-- 外部样式 bootstrap.min.css -- ...

  8. bash元字符(上)

    元字符 行动 样例 回车换行 结束一个命令 空格 切割命令行中的元素 ls /etc Tab 命令自己主动补全 # 開始一行凝视 #This is a comment line " 引用多个 ...

  9. CentOS下JAVA WEB 环境搭建

    首先介绍下我的软件环境.虚拟机Vmware9.0(已经汉化),CentOS6.4(选择安装语言为简体中文),xshell4.0(强大的安全终端模拟软件),xftp4.0(FTP工具). 方便大家环境搭 ...

  10. 免费的编程中文书籍索引 from github

    免费的编程中文书籍索引 免费的编程中文书籍索引,欢迎投稿. 国外程序员在 stackoverflow 推荐的程序员必读书籍,中文版. stackoverflow 上的程序员应该阅读的非编程类书籍有哪些 ...