黑马程序员技术交流社区

标题: java基础语法总结 [打印本页]

作者: swon13    时间: 2014-12-24 15:10
标题: java基础语法总结
一、java的命名规则
1、java中定义类名时,必须以字母开头,后者可以跟字母和数字的任意组合。在实际工作中要求类名必须以大写字母开头。
2、java中变量名必须是一个以字母开头的由字母和数字构成的序列。
3、java对大小写敏感,书写时一定要注意区分大小写。如果出现大小写拼写错误(如将main写成Main),那么程序将无法运行。
4、java中方法名首字母小写,第二个单词开始大写且为动词。
5、常量名习惯使用大写,单词之间用下划线连接。

二、注释
在java中有三种写注释的方式:
1、最常用的方式是使用//,其注释内容从//开始到本行末结束。
2、当需要长篇的注释时,可以使用将一段比较长的注释括起来。
3、使用结束,可以用来自动生成文档。
例1:

public class FistSample{
public static void mian(String[] arg){
    System.out.println(“Hello World !”)
}
}
三、数据类型
在java中,一共有8种基本类型,其中有4种整型、2种浮点类型、1种用于表示Unicode编码的字符单元的字符类型和1种用于表示真假值的boolean类型。

(1)、整型
整型用于表示没有小数部分的数值,它允许是负数。Java提供了4种整型,具体内容如表1。
                          表1 java整型      

类型
存储需求
取值类型
int
4字节
-2^31 — 2^31-1
short
2字节
-32768 —32767
long
8字节
-2^63 — 2^63-1
byte
1字节
-128 —127

(2)、浮点类型
浮点类型用于表示有小数部分的数值。在java中有两种浮点类型,具体内容见表2。其中double表示这种类型的数值精度是float的两倍。绝大部分应用程序采有double类型。
表2 浮点类型

类型
存储需求
取值类型
float
4字节
大约
double
8字节
大约

(3)、字符类型
char字符类型是一个16位无符号整数,用于表示单个字符,通常用来表示字符常量。
①、字符类型的值是对应字符的编码,是unicode 编码,java支持国际化,其中英文部分的值与ascll编码一致。Char是定长编码,所以的字符都是16位。例2:‘A’  0X0041
  ‘中’  0x4e2d
   在编码中:’0’ ’9’  ‘a’ ’z’  ‘A’ ’Z’都是连续编码的。
②、字符字面量使用单引号为定界符号:‘中’字面量也是整数常量。
③、最小值:0,最大值:65535 = 2^16-1
(4)boolean类型
Boolean类型有两个值:false和true,用来判定逻辑条件。整型值和布尔值之间不能进相互转换。
四、变量
1、java是强类型语言,其变量命名必须以字母开头,由字母和数字构成的序列。
2、变量必须声明,并且初始化以后使用。
3、变量必须有明确的类型,且变量不能重复定义。
4、变量的作用域,在声明的地方开始,到块结束为止,离开变量的作用结束时,变量将回收。
5、在java中,利用关键字final声明常量,这个常量只能被赋值一次,一旦赋值之后就不能够再更改了。习惯上,常量名使用大写。
例3        
public class Constants{
public static void main(String[] args){
    final double A=2.54;//常量名习惯用大写
    // a=3.14; 错误
    double b=3.12;
    double c=3.21;
    System.out.println(A+b+c);
}
}

五、运算符           
1、数学运算符:+ - * / %,需注意的问题有:
(1)在作/运算时,只有当参与/运算的两个操作数都是整数时,表示整数除法;否则,表示浮点除法。如:15/2为7,15.0/2为7.5。

(2)运算具有封闭性,即同种类型参与运算,返回同种类型。值得注意的是可能发生上溢出和下溢出。如:int i = 1024*1024*1024*4(上溢出)。

(3)作%运算时,参与运算的两个操作数必须为整型,否则会报错。

(4)+可以作字符串的连接运算,如:“,”+2  “,2”
例4:
public class Yunxuan{
public static void mian(String[] args){
    int a=3;
    double b=3.0;
    int c=2;
    System.out.println(a/c);//1
    System.out.println(b/c);//1.5
    System.out.println(a%c);//1
    //System.out.println(b%c);//出错
   
    int i=1024*1024*1024*4+1;//上溢出
    System.out.println(i);//1
}
}
2、关系运算符
(1)自增、自减运算:++ --
     a、i++:先将i的值作为整个表达的值,然后将i增加1。
     b、i++:先将i增加1,然后将i的值作为整个表达的值。
(2)在java中,用&&、&表示逻辑“与”,用||、|表示逻辑“或”,其中&&、||表示短路的逻辑运算, &、|表示非短路运算,大多数时使用短路运算。
(3) , 运算符将二进制进行右移或左移操作。
六、数组
(1)数组是一种数据结构,用来存储同一类型值的集合。在声明数组变量时,需要指出数组类型和数组变量的名字。
(2)数组初始化时一定要指定其维数,其初始化形式有以下两种:
     ①动态初始化数组:int[] arry = new int[];
     ②静态初始化数组:int[] arry = {1,2,3,4,5};  arry.length = 5;
七、大数值
如果基本的整数和浮点数精度不能够满足需求,那么可以使用java.math包中的两个很有用的类:BigInteger和BigDecimal,这两个类可以处理包含任意长度数序列的数值。
(1)BigInteger类实现了任意精度的整数运算,BigDecimal类实现了任意精度的浮点数运算。使用静态的ValuOf方法可以将普通的数值转换为大数值。
(2)Java.math.BigInteger中常用的API
①  BigInteger add(BigInteger other)
BigInteger subtract(BigInteger other)
BigInteger multiply(BigInteger other)
BigInteger divide(BigInteger other)
BigInteger mod(BigInteger other)
返回这个大整数与另一个大整数other的和、差、积、商以及余数。
②   int compareTo(BigInteger other)
如果这个大整数与另一个大整数other相等,返回0,如果这个大整数小于另一个大整数other,返回负数,否则,返回正数。
③   static Bigteger valueOf(long x)
返回值等于x的大整数
④  BigDecimal add(BigDecimal other)
BigDecimal subtract(BigDecimal other)
BigDecimal multiply(BigDecimal other)
BigDecimal divide(BigDecimal other)
BigDecimal mod(BigDecimal other)
返回这个大实数与另一个大实数other的和、差、积、商以及余数。
⑤  int compareTo(BigDecimal other)
如果这个大实数与另一个大实数other相等,返回0,如果这个大实数小于另一个大实数other,返回负数,否则,返回正数。
⑥  static BigDecimal valueOf(long x)
static BigDecimal valueOf(long x,int a)
返回值为x或 的一个大实数。
八、控制流程
(1)分支流程控制语名
①if(布尔表达式){
    //...
  }else{
    //...
  }

  ②switch(整数表达式){
    case 整数(int)常量:
      // ....
      break;
    case 整数常量:
      // ....
      break;
    default:
      //....
  }
(2)分支循环控制语句
① for(初始化表达式;布尔表达式; 递增表达式){
    //循环体
}

② While 循环控制
  while(布尔表达式){
  }
③do ... while() 循环控制
  do{
  //循环体
  }while(布尔表达式);

(3)For each 循环
Java SE 5.0 增加了一种功能很强的循环结构,可以用来依次处理数组中的每个元素而不必为指定下标值而分必。这种增强的for循环的语句格式为:
for(vriable : collection) statement

(4)break,continue,return,exit()的区别
break:跳出本层循环
continue:跳出本次循环
return:跳出方法
exit():跳出执行的程序
九、三大排序
(1) 选择排序
  原理: ① 将数组中的每个元素,与第一个元素比较
          如果这个元素小于第一个元素, 就将这
          两个元素交换.
        ② 每轮使用a的规则, 可以选择出一个最小元素
          放到第一个位置.
        ③ 经过n-1轮比较完成排序
   简单说: 每轮选择最小的放到前面.
      
数组的迭代(Iterate over Array)就是对数组的遍历
就是逐一处理数组元素.
逐一处理==遍历==迭代==Iterate

(2) 冒泡排序
  原理: ① 逐一比较数组中相邻的两个元素, 如果后面
         的数字小于前面的数字, 就交换先后元素.
        ② 经过一个轮次的比较, 一定有一个最大的排
         在最后的位置.
        ③ 每次比较剩下的元素, 经过n-1次比较, 可以
         实现排序
  简单说: 比较交换相邻元素,每次最大的漂移到最后
   

作者: swon13    时间: 2014-12-24 15:11
求黑马币,技术分!!!!
作者: FINE    时间: 2014-12-24 15:54
好详细啊!!
作者: abathe    时间: 2014-12-24 16:24
每天写写,助己也助人,功德一件
作者: 红楼    时间: 2014-12-24 21:18
好详细啊  
作者: reyzarc    时间: 2014-12-24 21:46
很详细,不过有些小问题,自增那里,还有数组定义那里……不过还是谢谢分享
作者: swon13    时间: 2014-12-24 22:58
求技术分,黑马币
作者: Franklin    时间: 2014-12-24 23:03
总结的很细致
作者: zcyemenye    时间: 2014-12-25 00:00
建议楼主注意下基本数据类型转换之间的问题。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2