SCJP第三课课后笔记

来源:互联网 发布:淘宝店面装修免费 编辑:程序博客网 时间:2024/06/14 00:26

注释

三种风格
 // 单行注释
 /* 一行或多行的注释 */
 /** 文档注释 */ 文档注释放在声明(变量、方法或类)之前。用javadoc生成的html文件应当含有该注释


分号、块和空白
 单行或多行代码语句用分号(;)终止   //全部写成一行也可以,只要采用;就可以分开各个语句
 块就是以左大括号和右大括号为边界的语句集合
 类声明中必须使用块
 语句块可以嵌套
 Java程序中允许使用任意数量的空白。
  
  
  
标示符
 是为变量、类或方法起的一个名称。
 以字母、下划线(_)或美元符号($)开头。
 区分大小写,没有最大长度限制。
 
 合法标示符:
  identifier
  userName           //全部是正确,但是编程时一般采用这种标示符规范。即驼峰规范
  user_name
  _sys_var1
  $change            //不常用,标示符最好避开美元符号
 标示符不能是关键字,但可以包含一个关键字。
 另外即使字母相同也可以区分大小写来区别标示符和关键字,但一般不采用和关键字字母相同大小写不同的标示符。
  
  
Java关键字
 
 abstract  continue  goto   package   synchronized
 assert   default   if   private   this
 boolean   do   implements  protected  throw
 break   double   import   public   throws
 byte   else   instanceof  return   transient
 case   extends   int   short   try
 catch   final   interface  static   void
 char   finally   long   strictfp  volatile
 class   float   native   super   while
 const   for   new   switch
  
 true和false不是关键字,依据Java语言规范,它们从技术上说是布尔字符。
 null是null字符
  
 注意:true和false都是小写
    没有sizeof操作符,所有类型的大小和表示都是固定的,不依赖于实现
    Java编程语言不使用关键字goto和const.这两个为保留字符 
  
  
基本数据类型
Java编程语言定义了8种基本数据类型
 逻辑 boolean
   只有两个值true和false
 
 字符 char
   单个字符使用char类型。代表16位无符号的Unicode字符。必须在单引号内('')
   例如:
     'a'  字母a
     '/t' 制表符
     '/u????'特定的Unicode字符。????用4个确切的16位数字代替
 
 整数 byte、short、int、long
   三种形式使用——十进制、八进制、十六进制
   2   十进制整数
   077   以0开头表示八进制
   0xBAAC  以0x开头表示十六进制。
   默认是int类型
   使用字母L或l定义long类型。但建议只写L,因为字母l和数字1很难区别。
 
   整数长度   名称或类型   范围
   8位     byte    -2e7到2e7-1
   16位    short    -2e15到2e15-1
   32位    int     -2e31到2e31-1
   64位    long    -2e63到2e63-1
  
 浮点 double、float
   浮点数包括十进制浮点或者下列所示之一
   E或e(加指数值)
   F或f(float)
   D或d(double)
   浮点数的缺省类型为double。可以再值后添加F或f来定义float类型
   除非明确声明了float,否则浮点数是double。
   
 
 
String
 不是基本数据类型,而是一个类。
 字符在双引号内("")
 //单个字符尽量使用char类型,char的效率要比String好得多。因为String是一个类,它还要进行内存分配——赋默认值——赋值等类的步骤。会加重程序负担。


变量、声明与赋值
 变量
  变量名首字母小写,其余单词首字母大写。不能是关键字。一般是名词
  变量名尽量使用两个单词
 
 声明
  声明时不分配空间。垃圾回收监视器默认会监视该变量。
  
 赋值
  int i = 1    //等号左右两边要留有空格,此为行业标准。
  
  
Java引用数据类型
 除了基本类型之外所有的类型就是引用类型。
 引用变量包含对象的"句柄"(即地址)
 

构造和初始化对象(初始化对象过程)
 调用new xxx()为新对象分配空间
  内存分配:为新对象分配空间,实例对象初始化为默认值(如,0、false、null,等等)
  执行显式的初始化
  执行构造器
 对象的引用值被赋给变量
 示例:
  MyDate my_birth=new MyDate(22,7,1964)
  1.对新对象分配空间并初始化为0或null。在Java编程语言中该阶段是不可缺少的,以保证对象中的值不是随机值。
   my_birth ????
   
   my_birth ????
    day  0
    month 0
    year 0
  2.执行显式的初始化。
   my_birth ????
    day  1
    month 1
    year 2000
  3.执行构造器(一个特殊的方法)。new方法的括号中的参数传递给构造器(22,7,1964)
   my_birth ????
    day  22
    month 7
    year 1964
  4.该变量被赋值为对堆内存中新对象的引用。
   my_birth 0x01abcdef
    day  22
    month 7
    year 1964

按值传递
 Java编程语言只“按值”传递参数,即不能通过调用的方法来修改参数
 可以改变对象的内容,但对象的引用不会被改变。即
  MyDate my_birth=new MyDate(22,7,1964)//它的地址假设为0x01abcdef
  MyDate my_birth=new MyDate(25,4,2009)//再次声明时可以改变my_birth的内容。但是这句话会新创建一个引用。原先引用对象如果在类运行时不发挥作用会被垃圾回收

this引用
 this关键字用于
  将代码中引用的成员和同一名称的局部变量或参数区分开来。
  将当前对象作为参数传递给另一个方法或构造器。//有时候可以不写,但是为了更好的区分,增强代码的可读性还是尽量加this

 

Java编程语言编码约定
 
 包:包名应该是小写的名词。  //行业规范:使用所在机构域名倒写+其他内部规范.并且不可能出现数字和*
  package cn.javakun.objects
 类:类名应该是名词,大小写混合,每个单词的首字母大写。
  class AccountBook
 接口:同类相同
  interface Account
 方法:方法名应该是动词,大小写混合,首字母小写。每个方法名中以大写字母区分单词。限制使用下划线。
  balanceAccount()
 变量:所有的变量应该是大小写混合,首字母小写。由大写字母区分单词。限制下划线的使用,避免使用美元符号$。因为这个字符对于内部类有特殊意义。
  currentCustomer
  变量名应该是有意义的,可以为临时读者指示使用这些变量的目的。除了临时的“使用后抛弃”的变量(例如i、j和k,作为循环控制变量而使用)之外,避免使用单字符的名称
 常数:基本类型常数应该是全部大写的由下划线区分的单词。对象常数何以实用大小写混合字母
  HEAD_COUNT
  MAXIMUM_SIZE
 控制结构:所有语句,即使是一条语句,如果属于控制结构一部分,都要用{}括起来。
  if(codition){
   do something
  } else{
   do something else
  }
 空格:在任意行上只防止一条语句,并且使用2或4个空格缩进,使代码更易读。
  public class Test{
   public static void main(String[] args){
   }
  }
 注释:使用注释来解释意义不明显的代码段。
  // 单行注释
  
  /* 多行注释
   多行注释*/
   
  /**文档注释
    *author:
    *date:
    */