zoukankan      html  css  js  c++  java
  • 【Java语言基础 01】

    一、变量和字面值

    1、变量必须先声明然后才能赋值,即:只有声明后才能使用

    2、已经赋值的变量可以重新赋值,即:修改原先赋的值

    3、同一域内变量名不能重复

    4、变量的四个属性:数据类型,变量名,变量值,占用内存大小

    package com.JavaStudy.study0327;
    
    /**
     * @Created by IntelliJ IDEA.
     * @Author wufq
     * @Date 2020/3/27 17:05
     */
    public class VarTest01 {
        //在内存中声明一个变量i,并且把字面值10赋值给i变量
        //声明和赋值时可以放到一起操作的
    
        public static void main(String[] args){
            int i =10;
    
            //变量可以重新赋值
            i=20;
    
            //在同一个域中变量名是不能重复的
           // int i= 1000; error
    
            //变量必须先声明在赋值才能使用
            int a = 13;
            System.out.println("a= "+a);
    
            //声明三个整数型的变量b,c,d 只有d赋值20
    
            int b,c,d = 20;
            b = 30;
            c = 40;
    
            System.out.println("b="+b);
            System.out.println("c="+c);
            System.out.println("d="+d);
    
        }
    }

    二、字符和字符串之间的区别:
    形式上:

    字符常量是单引号括起来的一个字符,例:’a‘

    字符串常量是双引号括起来的多个字符,例:“hello”

    含义上:

    字符常量相当于一个整形值(),可以参加表达式运算,也可以直接当变量使用

    字符串常量代表了一个地址值(该字符在内存中存放的位置)

    占内存大小:

    字符常量只占一个字节

    字符串占多个字节

    字符常量用char型变量来存储

    字符串用char数组来存储

    类型:

    字符类型用char声明

    字符串类型用String声明

    两者都是常量,区别与使用方法的不同

    三、变量的数据类型

    1、两大类:基本数据类型、引用数据类型

    基本数据类型(4类八种):数值型(字节型(byte:1个字节),短整型(short:2字节),整形(int:4字节)长整形(long:8字节),浮点型(单精度浮点型float,双精度浮点型dubbo),字符型(char),布尔型(boolean)

    引用数据类型:类,接口,数组

    byte    1  (-128~127)

    short   2(-32768~32767)

    int       4

    long    8

    1Byte = 8bit

    1KB = 1024Byte

    1MB  = 1024KB

    1GB = 1024MB

    MB指的是MByte,Mb指的是Mbit,也就是说MByte = 8*Mbit

    整数在Java中有三种表示方法

    十进制(常用的)

    八进制(从0开始)

    十六进制(从x0开始)

    Java中任何一个整数,默认类型都是int

    //十进制
            int l1 = 10;
    
            //八进制,已0开头
            int l2 = 010;
    
            //十六进制,已x0开头
            int l3 = 0x10;
    
            System.out.println(l1+l2+l3); //34
    
    
            //自动类型转换,小容量-->大容量
            // int-->long
            long t1 = 10;
    
            //不需要类型转换
            long t2 = 10L;//加个l表示长整型
    
            long t3 = 2147483647;
    
            long t4 = 2147483648;//int类型的最大容量为2147483647,超出去就会报错,只需要在后面增加一个l就可以

    2如果整数没有超出范围,可以直接将这个整数赋值给byte,short,char

    public class VarTest02 {
        /*
        除了整形int以为其他的数值型byte  short  long
    
        byte:-128~127
        short:-32768~32767
        long
         */
    
        public static void main(String[] args){
    
            //1、整形没有超出其他byte,short,long的数值范围,可以直接赋值
    
            byte a1 = 10;
            System.out.println("a1:"+a1);//10
    
            //2、超出范围需要强制转换,强制转换的结果会使精度丢失。
            //强制转换的方法:所赋的值前面加上(数据类型)
    
            byte a2 = (byte)128;
            System.out.println("a2:"+a2);//-128
    
            byte a3 = (byte)188;
            System.out.println("a3:"+a3);//-68
    
            short a4 = 32767;
            System.out.println("a4:"+a4);//32767
    
            short a5 = (short)32799;
            System.out.println("a5:"+a5); //-32737
    
            //通过以上数据的打印,可以看出大容量像小容量的转换,即:强制转换会使精度丢失
    
        }
    }

    3、

    关于char类型,最大取值范围为:0~65535==>2^16-1

    即可以把数字赋值给char类型,也可以字符赋值给char类型
    char类型中有字符编码方式:
    基本的编码是ASCII:

    'a'  97
    'A' 65
    '0' 48
    char c1 =10;
            char c2 = 'a';
            System.out.println(c2);//a
            char c3 = '中';
            System.out.println(c3);//// char c4 = '中国';//char两个字符长度,一个汉字占两个字符长度,所有'中国'四个字符长度,会报错
            char c5 = 65535;
            char c6 = (char)65536;//超出最大取值范围会报错,采用强制转换
            System.out.println(c6);//[]
    
    

    4、浮点型:类型:folat,double
    float 4字节
    double 8字节

    Java中的小数默认的类型都是double类型
    小数赋值给float时,需要进行转换:1、在值后面加F/f    2、强制转换

    double d1 = 2.51;
    float d2 = 2.67f;
    float d3 = (float) 2.35;
    System.out.println("d1:"+d1 +"
    d2:"+d2+"
    d3:"+d3);

    5、boolean类型一个直接,只有两个值,true,flase

    一般用于判断语句

    6、char类型

    1、char在Java中表示字符,描述的是显示世界中的文字
    2、因为计算机只识别二进制,所以必须引入"字符集编码方式"
    3、导致程序乱码原因:编码和解码不一致
    4、char底层占用两个字符,编码方式采用的是unicode(UTF-16)进行编码
    5、汉字占用两个字符,所以char可以存储一个汉字

    7、转义字符:/n换行,/t制表符相当于table键(中间空4个字符)

    
    
    /*
            转义字符:/n换行,/t制表符相当于table键(中间空4个字符)
             */
    
            char c1 = 'n';
            char c2 = '
    ';
    
            System.out.print("AB"+c2+"CD");
            /*
    
            AB
            CD
    
             */
    
            char c3 = '	';
            System.out.print("abc"+"def");//abcdef
            System.out.print(c2);
            System.out.print("abc"+c3+"def");//abc    def

     8、基本数据类型的转换关系

    |-- 八种基本数据类型中,只有boolean类型不能参加类型转换

    |-- 小容量向大容量转换,叫做自动类型转换

      byte<short(char)<int<long<float<double

    |-- byte,short,char三种类型做混合运算先转换成int类型在做运算

    |-- 大容量向小容量转换,叫做强制转换,需要加强制类型转换符

    |--  如果整数没有超出范围的话,可以直接将整数赋值给byte,short,char

    |-- 多种数据类型做混合运算先转换成容量大的那种在做运算

     四、算术运算符

     /*
        算术运算符:
        + 求和
        - 相减
        * 乘法
        / 除法
        % 取余数
        ++ 自加1
        -- 自减1
         */
        public static void main(String[] args){
            int a =10;
            int b = 3;
    
            System.out.println(a+b);//  13
            System.out.println(a-b);//  7
            System.out.println(a*b);//  30
            System.out.println(a/b);//  3
            System.out.println(a%b);//  1
    
            //关于++运算符
            int i= 10;
            i++;
            System.out.println(i);
    
            int j = 10;
            ++j;
            System.out.println(j);
    
            //这两种情况下++放在前面和放在后面是一样的
    
            //++出现在变量后面,先赋值后加1,++出现在变量前面,先加1后赋值
            int x = 10;
            int y=x++; //++出现在了x之后,即x的值10先赋值给y,则y的值变成了10,然后在+1
    
            System.out.println("y=="+y);//10
            System.out.println("x=="+x);//11
    
            int m = 10;
            int n = ++m;
            System.out.println("m=="+m);//11
            System.out.println("n=="+n);//11
    
        }

    五、关系运算符

    > <  >=等等,关系运算符一定是布尔类型的

    六、布尔运算符

    七、赋值类运算符

    基本赋值运算符:=
    扩展赋值运算符:
    +=
    -=
    *=
    /=
    %=
    int i= 10;
            i +=20;  //相当于:i= i+20;
            System.out.println("i+=:"+i);//30
    
            i -=20; //相当于:i= i-20;  -->30-20
            System.out.println("i-=:"+i);//10
    
            i *=20; //相当于:i= i*20;  -->10*20
            System.out.println("i*=:"+i);//200
    
            i /=3; //相当于:i= i/3;  -->200/3
            System.out.println("i/=:"+i);//66
    
            i %=3; //相当于:i= i/3; -->66/3
            System.out.println("i %=:"+i);//0
    
            //i首先被赋值10.然后每次加减乘除后都重新被赋值
    
            /*
            重点:不同类型的数值进行运算时,首先要转换成最大的类型进行运算
             */
    
            byte b =10;
    
            b = (byte)(b+10);//b是byte类型,b+10程序会自动转换成int类型,加后的结果重新赋值给byte的b会报错,所以需要强制类型转换
    
            b +=10;//扩展的运算会自动转换成

    六、字符串的连接运算符

  • 相关阅读:
    使用 Facebook开源动画库 POP 实现真实衰减动画
    在命名空间下定义类型
    作为程序猿我给csdn博客加入打赏功能
    linux高可用集群heartbeat实现http的高可用
    杭电 HDU 1247 ACMHat’s Words(trie树 或着STL)
    取石子(一)-博弈数论
    区块链技术开发怎么结合已有产业链落地?
    KafkaConsumer assign VS subscribe
    KafkaConsumer assign VS subscribe
    KafkaConsumer assign VS subscribe
  • 原文地址:https://www.cnblogs.com/frankruby/p/11147954.html
Copyright © 2011-2022 走看看