第三章 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. 权限设计实现(MVC4+Bootstrap+ PetaPoco+Spring.Net)

    权限设计实现(MVC4+Bootstrap+ PetaPoco+Spring.Net) 一.前言 至毕业后一直在做企业Web开发,做过的项目也有不少,每个项目的框架设计都不是一样,但是每个项目的权限模 ...

  2. HTML5学习资源

    http://www.silverlightchina.net/html/HTML_5/study/ 我们一起学:HTML5标签系列教程(一)-video标签 版权声明:本文博客原创文章.博客,未经同 ...

  3. JSON解析之Gson

    1.Gson简介 Gson是一个将Java对象转为JSON表示的开源类库,由Google提供,并且也可以讲JSON字符串转为对应的Java对象.虽然有一些其他的开源项目也支持将Java对象转为JSON ...

  4. 用jQuery的ajax的功能实现输入自动提示的功能

    注意事项:要使用jQuery首先要把它的包引用进来( <script type="text/javascript" language="javascript&quo ...

  5. iScroll 4.2.5 中文API

    概况 资料来源 http://cubiq.org/iscroll-4 http://www.cnblogs.com/wanghun/archive/2012/10/17/2727416.html ht ...

  6. CTP API开发期货自动交易平台概论

    题目比较小众,先介绍一下CTP. 综合交易平台CTP(Comprehensive Transaction Platform)是由上海期货信息技术有限公司(上海期货交易所的全资子公司)开发的期货交易平台 ...

  7. idea中ajax中文乱码

    case:@RequestMapping中添加 produces= "text/plain;charset=UTF-8", @RequestMapping(method = Req ...

  8. .net创建并安装windows服务案例

    1. 创建windows服务[引用博文]: 1. 将这个服务程序切换到设计视图2. 右击设计视图选择“添加安装程序”3. 切换到刚被添加的ProjectInstaller的设计视图4. 设置servi ...

  9. 使用 ArcGIS Online和APP进行监控操作和数据采集

    主要介绍的App是Operations Dashboard for ArcGIS 和 Collector for ArcGIS,它们 提高了组织内日常操作的效率.精度和响应速度. 已经购买了 ArcG ...

  10. STL非变易算法 - STL算法

    欢迎访问我的新博客:http://www.milkcu.com/blog/ 原文地址:http://www.milkcu.com/blog/archives/1394600460.html 原创:ST ...