JAVA基础

来源:互联网 发布:mc java路径 编辑:程序博客网 时间:2024/05/29 03:18

一、变量:

 1)逻辑上类似于人类语言中的代词
 2) 本质上是内存中的数据
 
  Person she;
  Person he;
  she.love(he);
 
 变量的语法 规定
 1) 变量必须有明确的类型
 2)变量必须声明,且初始化以后才能使用
 3)变量有作用域, 超过作用域就释放
    变量的作用域:声明位置开始,到块结束
    语句块:{}
    
 4) 变量不能重复定义!
 

 如果违反了语法规定 将发生编译错误!


二、进制的总结:


 1) 计算机只能处理 2 进制数据(经常是补码)!
 2) 计算机内部没有 10 进制 和 16进制
 3) 10进制是人类 处理数据的习惯,Java 利用API 提供算法
    (方法)实现 10进制的处理! 
 4) 16 进制 是便捷的 2进制书写格式! 
 5) 一切交给计算机的处理的数据,都要转换为2进制!

对于计算机,内部只有补码,只采用补码计算
 但是,在显示输出的时候, 需要转换为人类习惯的10进制.
 这个转换是利用程序计算的结果:
 
  0xfffffffe  计算转换为  "-2" 给人看!
    Integer.toString(0xfffffffe) -> "-2"
    
 根本原因是成本考虑!


三、数据类型


  数据类型分为两大类:基本类型和引用类型。 基本类型有八种,除了基本类型以外的任何类型都是引用类型。如: String 是引用类型。
  
 3.1 八种基本类型:
   

    整数:byte, short, int, long
    浮点数(小数):float,double
    布尔类型:boolean
    字符类型: char
  
  3.1.1  整数,都是有符号数(补码):
           byte    8位补码     -128 ~ 127 
           short  16位补码   -32768 ~ 32767
           int    32位补码   约-21亿 ~ 21亿    -2^31 ~ 2^31-1
                    -2G ~ 2G-1
           long   64位补码  -2^63 ~ 2^63-1  

          我们在使用的时候要注意 利用优点,避免缺点 。要避免补码的超范围运算(溢出问题)。
      1)任何整数“字面量”都是 int 类型。字面量就是直接写出的值,如:5 6  '中'  true   false   3.14   
     2)  “整数字面量”在不超过范围情况下可以给“小类型变量”赋值
     3)  以0x为前缀的是16进制,0前缀的是8进制
     4)  整数超范围运算会溢出  
   

   最常用int,但是要注意范围, short很少使用,byte用于表示文件等底层数据

byte b = 120;b = 129;//溢出
  
 3.1.2  浮点数:float  double  IEEE 754 
   float 32位浮点数,精度不高,很少使用 
   double 64位浮点数,精度高,是float的两倍,常用
  
  字面量后缀: F  D  L  
  
 boolean 布尔类型 true false
 
   if(used){
   System.out.println("跳楼价!");
   }
 
 char 字符类型:字符是一个整数
    
   char c = '3';
   
   int n = c-'0';//(48+3) - 48 = 3
    
   c-'0' 表达式可以将 1位数字字符 转换为 数字
   
 数据类型转换
  byte b = -1;
  System.out.println(Integer.toHexString(b)); 
  //System.out.println(Integer.toHexString((int)b)); 
 
 强制类型转换
  注意:1)  超范围转换, 会发生溢出现象 
      2) 小数部分会发生精度损失  小数点位数变短  
 
四、 java 的运算符


   数学运算: +  -  *  /  %
    封闭性原则
   1)同种类型参与运算,等到同种类型结果
   2)小于32位数(byte, short, char)按照32位计算 
   3)注意,整数的除法是整除
  
  运算符
 比较运算符: > <  >=  <= == !=  
 逻辑运算符: 短路运算 &&  ||  !   非短路运算 &  |
   大多使用短路运算,处理业务规则
   很少使用非短路运算。面试和笔试时候会出现!
    
 三元运算符
  实际上是判断逻辑。 布尔表达式 ? 表达式1 : 表达式2
 
五、流程控制


 if语句  
 
 if(布尔表达式){
   //语句块1
 }else{
   //语句块2
 }
 
 if else 嵌套


 switch case 
 
 if else if else 与 switch case default
 switch case 只能利用整数条件进行 分支处理!
  case 后面的只能是整数 常量!
  
  if else 就更加灵活 可以"根据任何的条件"进行分支
  使用更加方便
  
  但是:性能不同!switch 的性能要 远远高于 if 语句!
 使用建议:如果分支条件是整数,就使用switch 提高性能
   其他情况使用 if else 
    
 使用switch 不要忘记使用break 语句!
  
  
 欢迎使用 学生管理软件
 1.添加学生  2.学生列表  3.删除学生  0.离开 
 请选择:1
 
 输入姓名:....
 
 for 循环:处理周期性,重复处理的功能
  for 大多用于处理 与 次数有关的循环
 
 
  存入     支出     合计
0100   0000   0100
0000   0025   0075
   
 

0 0