java 关键字,标识符,运算符


 

java标识符
      其实就是在程序中自定义的一些名称,由英文字母,数字,_和$组成,不能以数字开头,不能使用关键字,严格区分大小写
      main不是关键字,JVM把它当做程序的入口
       
java命名规范:
      包名:多单词组成时所有字母都小写 xxxyyyzzz
      类名接口名:多单词组成时,第一个单词首字母小写,以后每个单词首字母大写 xxxYyyZzz
      常量名:所有字母大写,多单词组成时,每个单词之间用_连接 XXX_YYY_ZZZ

       常量表示不能改变的数值
       java中常量的分类:
       1.整数常量.所有整数
       2.小树常量.所有小数
       3.布尔型常量.true false
       4.字符常量.将一个数字,字母或者符号用单引号('')标识
       5.字符串常量.将一个或者多个字符用双引号标识
       6.null常量.null

进制:

 对于整数:java有三种表现形式
   十进制:0-9
  八进制:0-7,满8进1,用0开头表示
  十六进制:0-9,A-F,满16进1,用0x开头表示

 计算机内的数据都是用二进制存储的
 一个字节是由8个二进制位组成,所以一个字节最大就是255
  用01的不同排列组合代表生活中的数据
  比如:010...001----代表A
  就形成了编码表,ASCII,GBK,gb2312
  二进制的表现形式太长,太繁琐,为了更方便的表示数据
  于是,把二进制中的数据,3位代表1位,这样出现了八进制,可是还是太长
  于是,把二进制中的数据,4位代表1位,这样出现了十六进制.

  十进制转二进制:
  "除2取余,逆序排列"
  用2去除十进制的数,得到一个商和余数,再用2去除商,又会得到一个商和余数,如此进行,直到商为0时为止,把余数到过来写
   二进制转十进制
   转化成十进制要从右到左用二进制的每个数去乘以2的相应次方,不过次方要从0开始
   例如:13的二进制是1101
    转换十进制就是:1*2的3次幂+1*2的2次幂+0*2的1次幂+1*2的0次幂

   八进制和十六进制转换,都是先将十进制转成二进制,在分别3位表示一位,4位代表一位
  

    负数二进制:
       正数的二进制取反+1
       
 
 变量:就是将不确定的数据进行存储,需要在内存中开辟空间 
      通过1.明确数据类型 2.变量名称 3.数据 来完成开辟空间


  
 
  byte b = 2;//-128~127;
  byte b1 = 128;//报错
  short s = 30000;
  long l = 3l;//加一个L标识一下
  float f = 2.3;//编译报错,小数默认都是double型的,整数默认是int类型
  float f1 = 2.3f;//加f标识一下,标识单精度的小数
  char ch = '4';//单引号
  char c = '我';//一个汉字是两个字节,

         类型转换:
  byte b = 3;
  b = b+2;
  System.out.println(b);   //编译报错,
  b = (byte)(b+2); //强制类型转换
  b+=2;  //
  System.out.println('a'+1); //=98,char类型可以进行运算的,ASCII编码表中有对应的数字,所有系统都支持ASCII表

  java运算符:


   1.算术运算符
    +, -, *, /, %(取模), ++, --, +(字符串相加,字符串数据和任何数据使用+都是相连接,最终都会变成字符串)
   2.赋值运算符
   =, +=, -=, *=, /=, %=
   int a,b,c;
   a=b=c=5; //编译通过
   short s = 4;
   s = s + 2; //编译报错,s会被提升为int类型
   s+=2;  //编译可以通过,+=是一次运算,它在给s赋值时,会自动完成强制类型转换动作
   3.比较运算符
     运算后的结果是boolean型,true或false
   ==, !=, <, >, <=, >=, instanceof(检查是否是类的对象)
   4.逻辑运算符
     用于连接boolean类型的表达式,运算后的结果也是boolean类型的值
   & (AND与):     false&false --> false  两边都为true,结果为true,有一个为false,就为false
   | (OR或):      false|true -->true   两边都为false,结果为false,有一个为true,就为true,
   ^ (XOR异或):   true^false -->true   两边相同结果为false,两边不同位true
   ! (Not非):     !true -->false
   && (AND短路与):false&&false -->false
   || (OR短路或): false||true -->true

   5.位运算符
   位运算是直接对二进制进行运算,是最快的运算
   << (左移):其实就是乘以2的移动的位数次幂
      例如:3<<3-------->=3*2的3次幂
        把3的二进制数,向左移3位,右边补0;左移变大
        2*8  2<<3
   >> (右移):就是除以2的移动的位数次幂
      例如:6>>2-------->=6/2的2次幂
        把6的二进制数,想右移2位,正数,左边补0;负数,左边补1;右移变小
   >>>(无符号右移):
       例如:6>>>2
         把6的二进制数,向右移2位,不管正还是负数,左边都补0
   & (与运算):
     例如:6&3    0代表false,1代表true
       0000-0000 0000-0000 0000-0000 0000-0110
      &0000-0000 0000-0000 0000-0000 0000-0011
      --------------------------------------------------------------
       0000-0000 0000-0000 0000-0000 0000-0010 =2
   | (或运算):
        例如:6|5
         0000-0000 0000-0000 0000-0000 0000-0110
        |0000-0000 0000-0000 0000-0000 0000-0101
        ---------------------------------------------------------------
         0000-0000 0000-0000 0000-0000 0000-0111 =7
   ^ (异或运算):
         例如:6^5
         0000-0000 0000-0000 0000-0000 0000-0110
        ^0000-0000 0000-0000 0000-0000 0000-0101
        --------------------------------------------------------------
         0000-0000 0000-0000 0000-0000 0000-0011 =3
         一个数异或同一个数两次还是第一个数(6^5^5 = 6)
         互换两个整数的值(不借助第三方变量)
         int m = 8,n = 3;
          1. 如果m和n的值非常大,容易超出int范围
             m = m + n;  11 = 8 + 3;
             n = m - n;  3 = 11 - 8; 
             m = m - n;  8 = 11 - 3;
          2.
             m = m^n;
             n = m^n; // (m^n)^n
             m = m^n; // n^(n^m)
   ~ (反码):
     例如:~6
     ~0000-0000 0000-0000 0000-0000 0000-0110
      --------------------------------------------------------------
       1111-1111 1111-1111 1111-1111 1111-1001 =-7

   6.三元运算符
   if else 结构 简写格式: 变量 = (条件表达式)?表达式1:表达式2;
   如果条件为true,运算后的结果是表达式1
   如果条件为false,运算后的结果是表达式2;

   好处:可以简化if else代码。
   弊端:因为是一个运算符,所以运算完必须要有一个结果。

 

  java转义字符: 通过\ 来转变后面字母或符号的含义
    八进制转义序列:\ + 1到3位5数字;范围'\000'~'\377'
      \0:空字符
      Unicode转义字符:\u + 四个十六进制数字;0~65535
      \u0000:空字符
     
    \b:退格,相当于backspace
    \t:制表符,相当于tab键
    \n,换行
    \r,回车,相当于Enter,windows系统,回车符是由\r\n两个字符表示
    \f:走纸换页
    \':单引号
    \":双引号
    \\:反斜杠
   
    点的转义:. ==> u002E
   美元符号的转义:$ ==> u0024
   乘方符号的转义:^ ==> u005E
   左大括号的转义:{ ==> u007B
   左方括号的转义:[ ==> u005B
   左圆括号的转义:( ==> u0028
   竖线的转义:| ==> u007C
   右圆括号的转义:) ==> u0029
   星号的转义:* ==> u002A
   加号的转义:+ ==> u002B
   问号的转义:? ==> u003F
   反斜杠的转义: ==> u005C

 

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>