JAVA-编程规范及基本概念

编程规范不是语法, 是业内约定俗成的规则,程序员的潜规则。


Java的编程规范如下:(详细版本请参见阿里巴巴java手册)

  1 每个部分之间用空行隔开。

  2 要有空格和缩进。

  3 所有类名要首字母大写,其它单词首字母也大写。

  4 变量名和方法名首字母小写,其它单词首字母大写。

  5 包名全小写,不同单词用点或者下划线隔开。

  6 常量所有字母都大写,不同单词之间用下划线隔开。XXX_YYY_ZZZ

  7 最好望文知意,尽量不要使用中文。


  变量就是用于存取数据的,可以进行各种运算。变量本质就是一块内存。

          程序必须的硬件是cpu和内存,CPU用于运算,内存用于储存数据。

          无盘工作站:只包含CPU和内存。


  硬盘和内存的区别

    内存是cpu可以直接访问的存储,因此速度快;但关机后会消失,不能永久保存。(此处不考虑RAM和ROM的问题)

    硬盘cpu不能直接访问,需要加载到内存中才能使用,因此速度慢;但关机后可以保存。

    数据在内存中以 变量 的形式存储;在硬盘中以 文件 的形式存储。


  Java是强类型语言,变量在使用前必须声明。

  Java变量使用前必须声明和初始化,声明就是变量第一次出现时,带类型定义。声明只做一次,以后直接使用即可。初始化就是第一次给变量赋值。


  变量名必须先是标识符,标识符命名的一些规则

  1 必须是字母、数字、下划线、$等,不能是随意的字符。

  2 数字不能是第一个字符。

  3 不能是Java关键字,比如:public static class ….

  4 不可以使用关键字和保留字,但能包含关键字和保留字。

  5 可以是汉字,但是不推荐使用。

  6 Java中严格区分大小写,长度无限制。

  7 标识符不能包含空格。

  标识符可以给类/变量/属性/方法/包 起名字。


  JAVA中所有关键字均是小写,小写的不一定都是关键字。

  保留关键字:const goto

  Java的虚拟机是用C++写的。

  extends  继承 ;  final用来定义常量 ;

  try catch  finally 的组合用于处理异常 ;

  implements 实现接口 和extends组合用于实现继承;

  instance of 判断变量类型(多态的内容);interface 接口;

  native  本地(调用系统);new 创建对象;

  private  protected  public 代表访问权限;

  return 方法返回值; strictfp  精确浮点运算;

  enum  枚举 ;  transiend  I/O的内容


  Java中变量按照数据类型分为基本数据类型和引用数据类型。

  基本类型有8种。

     整型:byte(8 bit)  short   int(默认类型)   long

     浮点型:float double (默认类型)

     字符型:char('')

     布尔类型: boolean(只能取值为true 或false,不能取null)


   补充:按照在类中存在的位置的不同:成员变量 vs 局部变量


  引用数据类型是更广泛的,包括所有的:类、接口、数组、枚举和标注。


  内存/硬盘的存储单位:

           计算机最基本的存储单位,一个二进制位(bit)。

           计算机的底层只能存1和0,代表有电和没电。   

           计算机由很多个二进制位组成。

           存储最常用的单位是 字节(byte),8个bit等于1个byte。

           文件/内存的大小经常使用 kb / mb / gb / tb ,1k = 1024。也就是2的10次方。


  基本类型包括:

   整型4种  byte(1字节) / short(2) / int(4) / long(8)

   浮点2种  float(4) / double(8)

   布尔     boolean(1)

   字符     char(2)


  byte 的表述范围: -128 到 127 (负的2的7次方到正的2的7次方减1)

  int 的表述范围: -2的31次方到2的31次方减1(正负21亿多)


  整型默认是int,浮点默认是double。


  整型可以用二进制、八进制、十六进制和十进制。其中,十六进制的10用A表示,15用F表示。以0开始的是八进制,以0x开始的是十六进制

    10  -> 10

   010  -> 8

  0x10  -> 16


 二进制和十进制的进制转换:

   二进制中,第一位叫符号位,0代表非负数,1代表负数,不参与运算。

   正数的二进制转十进制 (以八位二进制为例)

   权重:符号  64 32 16  8 4 2 1

         0    1  1  1   0 1 0 1 -> 64+32+16+4+1 = 117

   练习: 0101 1011 -> 64+16+8+2+1 = 91


  正数的十进制转二进制

   除2取余数,反向输出。

   91    余1

   45    余1

   22    余0

   11    余1

   5     余1

   2     余0

   1     余1

   0       0101 1011

    57转二进制0011 1001


  负数的十进制转二进制    需要先把正数的转换完成,再按位取反后加1(补码)

  十进制转二进制:

    -95

     95 -> 95-64 = 31-16 = 15-8 =7 -4 =3 -2 = 1

      0        1  0   1       1     1     1   1 -> 0101 1111

   1010 0000+1 = 1010 0001 


   -108  -> 0110 1100 -> 1001 0100


  二进制转十进制:

   先减1,再按位取反可以得到对应的正数。

   按位取反后加1(补码)。

   1010 0001 -1 = 1010 0000 -> 0101 1111 -> -95

   0101 1110 +1 = 0101 1111 -> -95


   1100 0011 -> 0011 1101 -> -61


  设计一套砝码,要求能称1-100的所有重量,最少几个砝码。(砝码只在天平一边)

   二进制表示1-100 所以 64 32 16 8 4 2 1 就可以。


 long类型范围比int大,long类型的常数后面加L/l。


 浮点类型:(小数)

  float和double都是浮点,但Java的浮点都不准,只是一个算法近似值。

  float叫单精度浮点,double叫双精度浮点。

  0.1+0.2 不等于0.3 但是: 0.1+0.2+0.2 等于0.5 。

  系统默认浮点是double,float必须加 f/F。0.3 是double , 0.3f是float。


 如果计算比long大的整数或者精确(按多少位)运算,使用BigDecimal类。


 字符类型:

   字符类型的变量具备两种身份:字符和整数。对外是字符,但存的是整数,就是字符的编码。常见的编码:'A':65  'a':97  '0':48。

   '0'  0  "0"不一样,分别是字符0,数字0和字符串0。

   字符的表示方式:'a'   '\uXXXX'   97 。

   \ 是转义字符,常见的用法:  '\n'换行  '\t'跳一个制表位  '\\'代表一个\


  基本类型的类型转换:


 1、 自动转换发生在小的表述范围到大的表述范围,即容量小的数据类型自动转换为容量大的数据类型。

       布尔类型不参与类型转换。

       byte-> short / char -> int -> long -> float -> double

       常数可以自动类型转换。

       注意:byte  short char之间做运算,结果为int型!


 2 、大的向小的转换时,需要强制类型转换,就是(目标类型)


 

作业:

  1 输入圆的半径,输出圆的周长(2*PI*r)和面积(PI*r*r)。

  2 输入4位整数,反向输出。比如:输入1234,输出4321。 1230 -> 321。

public class Reverse{

  public static void main(String[] args){

    Scanner sc = new Scanner(System.in);

    System.out.println("请输入一个四位整数");

    int num = sc.nextInt(); //1 读入

    int a = num%10; //个位数

    int b = num/10%10;//十位数

    int c = num/100%10;//百位数

    int d = num/1000;//千位数   2 取位数

    int res = a*1000+b*100+c*10+d;//3 拼装

    System.out.println(res);

  }

}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章