java 基本类型和运算符

一.java的特性

  • java语言由JamesGosling和BillJoy 的指导下由Sun公司开发的。
  • java是编译语言也是解释语言   java源代码----> 字节码--->java运行时解释器执行
  • java指定所有基本数据类型的大小
  • 除基本数据类型为,java中所有对象都可以通过引用来访问(一种‘安全性指针’,不能进行算数运算)
  • Java所有操作都是传值操作
  • java 不支持默认参数
  • java是面向对象语言,代码的基本单位是类

                   1  类的组成:

                                    1.数据项(也称变量/字段) 2. 函数(也称方法)

                  2.一个类可以创建不同的对象,每个对象都是同一个类的实例.  类相当于模板,对象相当与通过模板制作出的个体

                  3.通过引用访问对象,    类类型的变量即为对象的引用  A obj1 = new A();  //变量obj1就是对new所创建的对象的引用

                  4.一个类可以有多个子类,但只能有一个父类(超类),唯一例外 Object类,它无父类

  • 不允许自定义操作符重载,java中唯一重载的运算符 ‘+’,用于字符串连接 ,和算数加法运算
  • 没有源代码预处理器,因此没有 宏、#define 语句或条件编译
  • main() 方法是应用程序的入口,每个java应用至少包含一个带有main()方法的类 
  •  项目名全部小写 包名全部小写

     类名首字母大写,每个单词的首字母都要大写。

    变量名、方法名首字母小写,每个单词的首字母都要大写。

    5、 常量名全部大写

    如:public static final String GAME_COLOR=”RED”;

  • 以{ } 分割代码块
  • java的安全模型 

从内到外 :1.java二进制码   java运行时系统中固定的部分

                    2.字节码校验器(静态的校验 一种数学“定理证明机”)

                    3类加载器   负责将一个或多个java类的字节码置入解释器中

                    4.安全性管理器() 

                    5系统资源(应用级:文件系统、网络端口、窗口环境)

二.java的数据类型 运算符  

0注释

  //  单行注释

 /* 多行
注释
       
*/

/**
 * 块注释  (文档注释)
 *习惯每行以*开头
 *有java SDK的javadoc程序抽取并将其生成产HTML文档  前导的空格和*都会被忽略
 *文档注释可以出现在类 方法 变量 定义之前
 *                    说明                 应用于           作用
 *@see              相关类名             类 方法 变量       建立指向相关类文档的超文本链接
 *@author            作者名                 类             标记作者
 *@version            版本                  类             标记版本
 *@param             参数名和描述          方法             
 *@return            返回值描述            方法
 *@exception         异常名和描述          方法
 *@deprecated        声明某项过时         类 方法 变量     
 *@since             在添加项的时候提示API版本  变量   
 *以@开头的行解释为针对文档生成器的特殊指令
 */

1.数据类型

               数据种类 分为两种 1.基本类型  2. 引用类型

         8种基本类型   按值传递

类型 定义
boolean true 或 false
char

16位Unicode字符

(2字节的无符号整数)

byte  8位有符号的二进制整数
short 16位有符号的二进制整数
int 32位有符号的二进制整数
long 64位有符号的二进制整数
float 32位IEEE754 浮点值
double 64位IEEE754浮点值

       变量

                      以字母开头,可由字母 数字 _ $ 构成,不能与关键字重复

2.语句

       声明 

                   类型名 变量名空格隔开    int a;

       初始化 :在声明的同时将其赋值

int a = 0+5;
int oct = 0123;//指定8进制数      以0开头
int hex = 0xFFFF; //指定16进制数  以0x或0X开头
int two = 0b10100101; //指定2进制 以0b或0B开头
float f = 3.54f;//f或F 必须 
double do = 13513.153135;
boolean flag = true;

//char 字符直接量必须在''内 可以为字母 数字 字符 \uxxxx(x为16进制)Unicode编码序号
char c = 'a';
char b = '好';
char x = 0x9a12;//按照十六进制的方式 
char d = '\u122c';//按照Unicode字符形式 

//java中出现的整数(整数直接量)如 0  100 121 -5 默认为int类型
//在整数直接量中可以使用_下划线 分割数字
long x = 1010_1515;// 出现隐式类型转换(范围小的类型自动往大类型的方向转换) 将int型 转换成long
long l = 1E9L;//L或l  必须  为与1进行区分 建议使用L  指明这个整数位long类型

//将整数赋值给 byte 和 short 是必须 强制类型转换(将范围大的类型转换成范围小的类型)
byte b = (byte)12;
short sh = (short)154;
  
// 浮点数转换成整型 将损失精度 需要强制类型转换
int i = (int)12.5;
boolean 类型不参与类型转换

        声明 赋值    if  ;if else;if elseif else; for; while;do while;switch;break;continue;//与c同

           try catch 和finally ;// ..

           不可达语句 编译时出错

//不可达语句 编译时出错
if(1<2)
 return;

           表达式 的值 

                             数字类型 (算术表达式)

                             引用类型(对象分配)

void(不返回任何值得方法)
3.运算符

     算术:char byte short int long float double

    整型:char  byte short int long 

优先级 操作符 操作数类型  
1

++ --  + -

算术

自增 自减  单目加 单目减

前缀自增自减法(++a,--a): 先进行自增或者自减运算,再进行表达式运算。

后缀自增自减法(a++,a--): 先进行表达式运算,再进行自增或者自减运算 

1 ~ 整型;  按位取反
1 ! 布尔;  逻辑取反
1 (type)    任何类型 类型转换   
2 * / % 算术 乘除 加减
3 + - 算术 加法和减法
3 + 字符串 字符串连接
4 <<    >> 整型

<<左移 高位舍弃,低位补0  

右移(有符号扩展的右移, 低位舍弃,高位补符号位)            位运算

4 >>> 整型

无扩展的右移(高位补0,)                        位运算

5 instanceof 对象 类型比较         子类是父类的类型,但父类不是子类的类型
5 < > <=  >= 算术  运算 大于 小于 小于等于 大于等于   关系运算
6 !=   == 基本类型  不等  等于                 (基本类型时:判断变量内容是否相等)              关系运算
6 !=  == 对象 引用的相等和不等     (对象时:判断变量引用对象的内存地址是否相同) 
7 整型 或布尔 按位与  逻辑与(AND)    
8 ^ 整型 或布尔 按位异或 逻辑异或(XOR)
9 | 整型 或布尔 按位或  逻辑或 (OR)
10 && 布尔 条件与          逻辑运算符       (特性: 短路)
11 || 布尔

条件或          逻辑运算符   

(会短路 如: x||y 若x为true,则编译器将不看y的值 ,仅计算第一个值,仅当有必要时才计算第二个操作数的)

12  ? : N/A 三门运算符   条件运算符
13 = + = - = * = / =%= >> = << =&= ^ = | = 任何类型 赋值

关于关系运算符 ==

//情况1  基本类型  看值 
    int i = 2;
    int j = 2;
    System.out.println( i==j ); //true

//对象以String为例
    //1 将直接量赋给String
    String str = "AB";
    String str1 = "AB";
    System.out.println( str==str1 ); //true 
    //2 以new创建
    String strNew = new String("AB");
    String strNew1 = new String("AB");
    System.out.println( strNew==strNew1 ); //fasle
    System.out.println( str == strNew );   //false
    //结论: "==" 比较的是变量名的值,所谓变量名的值可以理解为变量名存储变量的地址
    //直接量赋给String时,相同直接量存储的地址相同
    //使用new将会在Heap堆申请一块新的内存来创建对象
//以数组为类
    int []iArray = new int []{1,2};
    int []iArray1 = new int []{1,2};
    int []iArray2 = iArray;
    System.out.println( iArray == iArray1 );//false
    System.out.println( iArray == iArray2 );//true  

猜你喜欢

转载自blog.csdn.net/y2052/article/details/81349927
今日推荐