zoukankan      html  css  js  c++  java
  • Java基础(一)

    Java基础笔记(一)

    关键字

    • 定义:被java赋予特殊含义,用作专门用途的字符串(单词)
    • 特点:所有的关键字都是小写

    保留字

    • 现有java版本尚未使用的字符串,但未来极有可能会使用。因此在编写程序的时候,应当尽量避开。

    byValue、cast、future、 generic、 inner、 operator、 outer、 rest、 var 、 goto 、const

    标识符

    • 特点: java对各种变量方法命名使用的字符串
    • 更简单的说法是:可以自己命名的地方都是标识符
    • 标识符的特点
    1. 由26个英文字母大小写,数字,_或者$组成。
    2. 数字不能开头
    3. 不可以使用关键字保留字
    4. java语言区分大小写

    命令规范:

    包名:多单词组成时所有字母都小写:xxxyyyzzz
    类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
    变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz
    常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ

    变量类型

    基本数据类型(八种)

    • 字符

      • char
        • char表示字符类型,2个字节。char因为有对应的Unicode编码,因此它是可以进行运算的。
    • 整数类型

      • byte, short, int, long
    • 浮点类型

      • float, double
        • 浮点类型默认是double类型,float要加f或者F
    • 布尔

      • boolean
        • 只允许true 或者 false 连个值,没有null

    各类型取值范围

    类型 存储空间 表数范围
    byte 1字节 -128 ~ 127
    short 2 -215 ~215-1
    int 4 -231 ~ 231-1
    long 8 -263 ~ 263-1
    float 4 -3.403E38 ~ 3.403E38
    double 8 -1.798E308 ~ 1.798E308
    boolean true/false

    虽然float是4个字节,long是8个字节,但是float能表述的范围却比long类型的大。这个涉及到底部结构,float一共32位,第一位是符号位表示正负(s),从二位-九位表示指数域(E),剩余23位表示小数域,即M,M的取值范围为[1,2)或[0,1),使用公式V=(-1)^s * M * 2^E进行换算。而long类型表示的是-2的n-1次方到(2的n-1)-1。这样就不难看出float的范围更大。

    Java虚拟机中没有任何供boolean值专用的字节码指令,java语言表达所操作的boolean值,在编译之后都使用java虚拟机中的int数据类型来代替:true用1表示,false用0表示《java虚拟机规范 8版》

    基本数据类型转化

    graph LR
    byte-->int
    char-->int
    short-->int
    int-->long
    long-->float
    float-->double
    
    1. 自动类型转换
    • 容量小的类型向容量大的类型转换
    • 有多种类型数据混合运算时,会先转化成容量最大的类型
    • byte、short、char之间不会相互转换,三者在转换时都转换成int类型
    • 当把任何基本类型的值和字符串(String)进行连接运算时(+),基本类型的值将自动转化为字符串类型。
    String str1 = 4;        //判断对错:no
    String str2 = 3.5f + “”;             //判断str2对错:yes
    System.out.println(str2);        //输出:3.5
    System.out .println(3+4+“Hello!”);     //输出:7Hello!
    System.out.println(“Hello!”+3+4);      //输出:Hello!34
    System.out.println(‘a’+1+“Hello!”);    //输出:98Hello!
    System.out.println(“Hello”+‘a’+1);     //输出:Helloa1
    
    
    1. 强制类型转化
    • 自动类型转化的逆过程,可能会造成精度缺失。
    public static void main(String[] args) {
            float num1 = 3.2f;
            int num2 = (int) num1;
            System.out.println(num2);
        }
    

    结果: 3 缺失了精度

    • 字符串可以通过基本数据类型的包装类进行转化(不包含boolean)
    String a = "43";
    int i = Integer.parseInt(a);
    System.out.println(i);
    

    结果: 43

    1) short  s = 5;
        s = s-2;                       //判断:no
    2) byte b = 3;
        b = b + 4;                  //判断:no
        b = (byte)(b+4);        //判断:yes
    3) char c = ‘a’;
        int  i = 5;
        float d = .314F;
        double result = c+i+d;     //判断:yes
    4) byte b = 5;
        short s = 3;
        short t = s + b;          //判断:no
    

    引用数据类型(这些知识点会在以后文章中介绍)

    • 接口
    • 数组

  • 相关阅读:
    C#获取HTML文件指定DIV内容
    剔除editor编辑器中的HTML标签
    ASP.NET MVC 在WebService中Token的使用方法
    MVC如何在单独的类库中添加区域
    原来写插件还可以选MEF
    EF CodeFirst学习
    .Net EF 学习之model first
    sql分页存储过程,带求和、排序
    软实力
    微软的XML可视化编辑器:XML Notepad 2007
  • 原文地址:https://www.cnblogs.com/amberbar/p/11685738.html
Copyright © 2011-2022 走看看