java基础总结

1 数据类型
   数据类型是分配内存数据单元的大小 
    
  int age = 5;
    
   数据类型分为两大类:基本类型,引用类型
    基本类型有8种:byte short int long 
    float double boolean char
    引用类型:没数
   如何区别变量的数据类型:除了基本类型都是引用类型
   如:String str; str是引用类型的变量
   引用类型在面向对象阶段详细讲解
  
  计算机内存中使用2进制数据!
  
  基本类型有8种:
   整数4种:都是有符号数(+ -)
    byte  8位(补码) 范围 -128 ~ 127
    short 16位(补码) 范围 -32768 ~ 32767
    int   32位(补码) 范围(约) -21亿 ~ 21亿
          -2^31 ~ 2^31-1
    long  64位(补码) 范围 很大
          -2^63 ~ 2^63-1
  一定了解数据的边界,避免超范围计算(会溢出)
  
  使用原则:一般使用int,如果不过范围使用long
    很少使用short(基本不用),byte用的不多
    在表示最基本的数据单元使用,如文件的数据
  
  
   16G = 1024*1024*1024*16(Byte)
           K    M    G      8bit(位)
       = 1024*1024*1024*16*8(bit)
   
  直接量(常数):就是直接给出的数据
  int age = 5;  其中5就是直接量
  age是变量 
  直接量 == 字面量
  1) 默认的直接量是 10进制,数字:
     0 1 2 3 4 5 6 7 8 9
  2) 以0开头的是8进制, 数字:0 1 2 3 4 5 6 7
  3) 以0x开头是16进制, 数字:
     0 1 2 3 4 5 6 7 8 9 a  b  c  d  e  f 
                         10 11 12 13 14 15
  4) 经过编译处理以后,都是2进制数据
  5) 10进制,是人类的习惯,书写理解方便
  6) 8进制和16进制是计算机专业中,2进制的缩位
      简写形式,其中8进制是每3位的缩写,16进制是
      每4位的缩写 
      
  总结: 
   1) 计算机内存总只有2进制
   2) 默认情况输入输出采用10进制
      在输入输出时候采用API(Integer)转换为2进制
   3) 为方便书写2进制,使用16进制缩写书写2进制
   
  面试奇葩题:
    int c = 078;
    System.out.println(c);
    输出结果:
    A.编译错误  B.运行异常  C.78  D.078   
      
  字面量的后缀:L l 表示long类型数据
  直接写的整数字面量是int类型
  如: long l = 129299292929;//编译错误 
      long l = 129299292929L;
   
  long 类型可以作为时间


2 浮点数(小数): float  double 
  浮点数标准请参数 : IEEE754标准 
  1) float  是32位浮点数  
  2) double 是64位浮点数  的精确度大约是float两倍
    
  3.1415926535897932384626433832
  314.1592 = 3.141592 * 10 * 10
  
  3) 为了计算准确一般采用double
  4) 浮点数计算是不绝对精确的,有舍入误差
  5) F/f 是float后缀  D、d是double后缀
  6) 如何不精确比较
     Math.abs(Math.sin(3.1415926)) < 0.0000000001
     
3 boolean 布尔类型
    只有两种字面量:true(真)false(假)用于表示
    两种状态
  boolean open = true; //营业
  boolean used = true; //used 使用过,二手
  if(used){
    System.out.println("二手八折!");
  }else{
    System.out.println("新货八折!");
  }


4 字符类型 char:字符类型是一个整数
  java的字符类型,是一个16位无符号整数
   范围: 0 ~ 65535 
   
    char c = 20013;// 中
    System.out.println(c);//中
       
    char ch = '中';//20013 
    
    System.out.println(
    Integer.toBinnaryString('中'))
    
 字符字面量
  1) 字符字面量的定界符是单引号: '0' 
      注意: "ABC" 是字符串
  2) 字符字面量实际也是一个整数
  3) 控制字符等,没有输出效果
  4) 特殊字符可以利用"转义字符"
     回车 c = '\r'
     换行 c = '\n'
     退格 c = '\b'
   tab c = '\t'
     单引号 c = '\''
    双引号 c = '\"'
     斜线 c = '\\'
   unicode 编码   c = '\u4e2d'   '中'
       
5 基本类型 数据类型转换
   1) java的数据有明确的数据类型(强类型语言)
   2) 不同类型数据赋值,就需要类型转换
   3) 数据类型转换分为:自动类型转换 强制类型转换
   4) 自动类型转换:小范围到大范围的转换自动完成
     long l = -2;//自动的将int -2转换为long -2
     //需要将32位补充为 64位的-2,然后赋值给l
   5)强制类型转换
   
   
   long l;
   int i
   i = (int)l;
   
   l = 01010100... 00 000 ... 0100
       63          32 31         0
   i = (int)l; i = 000 ... 0100
                   31         0
   
   
   234000000000000000000000000010
   2.34 * 10^29
   2.34 29
   float
   
6 Java 的数学运算符: + - * / % 
  1) 运行的封闭性
     同种类型数据参与运算,返回同种类型结果
  2) 小于32位的数据按照 32位计算
    byte  short  char
  3) java 不检查运算结果是否溢出 
     溢出不会出现错误!
  
  4) 字面量的运算在编译期间运算,执行时候是固定值
  5) “int字面量”如果不超过 小类型的范围,可以自动
    赋值给小类型变量
    char ch = 'A'+5;
    //ch = 'A'+n;//编译错误
    char c = 20013;
    //char c = 70013;
    int i = 20013;

    char c = i;//编译错误

7.基本的输入输出

Scanner是SDK1.5新增的一个类,可是使用该类创建一个对象.

Scanner reader=new Scanner(System.in); 

然后reader对象调用下列方法(函数),读取用户在命令行输入的各种数据类型  

next.Byte(),nextDouble(),nextFloat,nextInt(),nextLine(),nextLong(),nextShot() 

上述方法执行时都会造成堵塞,等待用户在命令行输入数据回车确认.例如,拥护在键盘输入

12.34,hasNextFloat()的值是true,而hasNextInt()的值是false. NextLine()等待用户输入一个文

本行并且回车,该方法得到一个String类型的数据。


下面是一个实例:

import java.util.*;

public class Example

{

public static void main(String args[])

{

System.out.println("请输入若干个数,每输入一个数用回车确认");

System.out.println("最后输入一个非数字结束输入操作");

Scanner reader=new Scanner(System.in);

double sum=0;

int m=0;

while(reader.hasNextDouble())

{

    double x=reader.nextDouble();

    m=m+1;

    sum=sum+x;

}

System.out.printf("%d个数的和为%f\n",m,sum);

System.out.printf("%d个数的平均值是%f\n",m,sum/m);

}

}

运行结果:

C:\java>java     

Example请输入若干个数,每输入一个数用回车确认最后输入一个非数字结束输入操作34.13445d3个数的和为113.1000003个数的平均值是37.700000


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值