【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;//扩展的运算会自动转换成

六、字符串的连接运算符

原文地址:https://www.cnblogs.com/frankruby/p/11147954.html