Java

作者: 瘦不下去了 | 来源:发表于2019-11-19 14:49 被阅读0次

一、HelloWorld

注意事项

  • 拼写,第一行第三个单词必须和文件名一模一样;第二行的String[]的S必须大写;第三行的分号必须是英文分号
//第一行的第三个单词必须和所在的文件名称完全一样,大小写也一样
//public class后面代表定义一个类的名称,类是java当中所有源代码的基本组织单位
public class HelloWorld {
    //第二行的内容是万年不变的固定写法,代表main写法
    //这一行代表程序执行的起点
    public static void main(String[] args){
        //第三行代表打印输出语句
        System.out.println("Hello World");
    }
}
1、注释

单行注释://(Ctrl+/) (python:#)
多行(区块)注释:/* */ (python:''' ''',单引号)

2、常量(程序运行期间固定不变的量)

字符串常量:" "双引号,里面不限数量;
字符常量:' '单引号,里面只有一个字符;
空常量:null。代表没有任何数据;
布尔常量:true,flase
字符常量,即单引号之间必须有且只能有一个字符;空常量无法打印;布尔常量可以

3、基本数据类型

整数型:byte short int(默认)
浮点型:float double(默认) float
字符型:char
布尔型:boolean
引用数据类型
字符串、数组、类、接口、Lambda

注意事项:

  • 字符串不是基本类型,是引用类型
  • 浮点型可能只是一个近似值,不是一个精确值
  • 数据类型与字节数不一定相关,例如float数据范围比long更广,但是float是4字节,long是8字节
  • 浮点数默认类型是double,如果一定要使用float类型,需要在数字后加上后缀F,推荐大写;如果是整数,默认是int,要使用long类型,需要加上后缀L
4、变量

变量:程序运行过程中,内容可以发生改变的量
格式一
数据类型 变量名称;
变量名称 = 数据值
格式二
数据类型 变量名称 = 数据值

public class HelloWorld{
    public static void main(String[] args){
        int num1;
        num1 = 10;
        System.out.println(num1);

        int num2 = 20;
        System.out.println(num2);
    }
}

基本使用

public class HelloWorld{
    public static void main(String[] args){
        int num1;
        num1 = 10;
        System.out.println(num1);

        num1 = 20;
        System.out.println(num1);//变量的重新赋值

        //byte num2 = 128;//右侧数值不能超过左侧数据类型的范围
        byte num3 = 127;
        System.out.println(num3);

        boolean var1 = true;
        System.out.println(var1);

        boolean var2 = var1;
        System.out.println(var2);//将一个变量的数据内容赋值给另一个变量
    }
}

注意事项:

  • 如果创建多个变量,那么变量名不能重复
  • 对于float和long类型来说,字母后缀F和L不要丢掉
  • 对于使用byte和short的变量,右侧是数据值不能超过左侧数据类型的范围
  • 变量如果没有赋值就不能使用(比如打印)
  • 变量使用不能超过作用域的范围;
    作用域:从定义变量的那一行开始,一直到直接所属的大括号结束为止
public class HelloWorld{
    public static void main(String[] args){
        int num1 = 10;
        System.out.println(num1);

        //int num1 = 20;//变量名不能重复

        //byte num2
        //System.out.println(num2);//没有赋值不能使用

        //System.out.println(num3);//创建变量之前,不能使用这个变量

        int num3 = 100;
        System.out.println(num3);
        {
            int num4 = 10;
            System.out.println(num4);
        }
        //System.out.println(num4);//已经超出了作用域,重新声明这个变量之前不能使用

        long num4 = 10;
        System.out.println(num4);//在外面的大括号作用域里,重新声明可以使用
    }
}
5、数据类型转换

当数据类型不一样时,将会发生数据类型转换
自动类型转换(隐式):
(1)特点:代码不需要进行特殊处理,自动完成;
(2)规则:数据范围从小到大
强制类型转换(显式)
(1)特点:代码需要进行特殊的格式处理,不能自动完成
(2)格式:范围小的类型 范围小的变量名 = (范围小的类型) 原本范围大的数据

public class HelloWorld{
    public static void main(String[] args){
        System.out.println(1024);//整数类型,默认int
        System.out.println(1.11);//浮点数类型,默认double

        //左边long类型,右边是默认的int类型,int-->long,符合数据范围从小到大的规则
        //自动转换数据类型
        long num1 = 100;
        System.out.println(num1);//100

        //左边double,右边float,float-->double,符合从小到大规则
        //自动转换
        double num2 = 1.1F;
        System.out.println(num2);//1.100000023841858

        //左边float,右边long,float范围更大,符合规则
        //自动转换
        float num3 = 100L;
        System.out.println(num3);//100.0

        //long-->int不是从小到大,不能自动转换
        //int num4 = 100L;
        int num5 = (int) 100L;
        System.out.println(num5);
    }
}

注意事项

  • 强制类型转换一般不推荐使用,因为有可能发生精度损失,数据溢出
  • byte/short/char都可以发生数学运算
  • byte/short/char这三种类型在运算的时候,都会被首先提升为int类型,然后再计算
  • boolean不能发生数据类型转换
public class HelloWorld{
    public static void main(String[] args){

        //long-->int
        int num1 = (int) 20000000000L;
        System.out.println(num1);//-1474836480  int类型装不下这么大的值,所以发生数据溢出

        //double-->int
        int num2 = (int) 4.99F;
        System.out.println(num2);//4  不会四舍五入,所有的小数位全部被舍弃

        char zifu = 'A';
        System.out.println(zifu);//A
        System.out.println(zifu+1);//66  大写字母A被提升为int65,然后进行了计算

        byte num3 = 40;
        byte num4 = 50;
        //byte result1 = num3+num4; //因为num3和num4都被提升为int,所以会报错
        int result1 = num3+num4;
        System.out.println(result1);

        short num6 = 60;
        short result2 = (short) (num3+num6);// 如果符合左边的数据类型范围,即逻辑的真实大小,那么可以使用强制转换来实现
        System.out.println(result2);
    }
}
6、算术运算

加:+;减:-;乘:*;除:/;模:%;

注意事项

  • 运算中有不同的数据类型,结果按范围大的数据类型显示
public class HelloWorld{
    public static void main(String[] args){
        //常量运算
        System.out.println(20+30);//50

        //变量运算
        int a =10;
        int b= 3;
        System.out.println(a+b);//13

        //变量常量混合
        System.out.println(a*20);//200

        //除,取商
        System.out.println(a/b);//3

        //除,取模(余数)
        System.out.println(a%b);//1

        //数据类型不同,结果取范围大的数据类型
        //int+double --> double+double --> double
        double result = a + 2.5;
        System.out.println(result);//12.5
    }
}

加号的多种用法

  • 对于数值来说,就是加法
  • 对于字符char类型来说,会先将char提升为int,然后进行运算
  • 对于字符串String(首字母大写,不是关键字),表示拼接操作,任何数据类型和字符串进行连接的时候,结果都会变成字符串
  • 优先级,小括号优先
public class HelloWorld{
    public static void main(String[] args){
        String str1 = "nihao";
        System.out.println(str1);//nihao

        System.out.println(str1+"hello");//nihaohello

        //String + int --> String
        System.out.println(str1+20);//nihao20
        System.out.println(str1+20+30);//nihao2030
        System.out.println(str1+(20+30));//nihao50
    }
}

自增自减
含义:让一个变量加一个数字1或者降一个数字1
格式:写在变量名称之前或之后。例:a++,++a
区别:(1) 单独使用的时候,无区别;(2)混合时,如果是++a,数值立马加1,并使用+1之后的值;a++,先使用原本的值,然后+1

public class HelloWorld{
    public static void main(String[] args){
        //单独使用
        int num = 10;
        System.out.println(num);
        num++;
        System.out.println(num);//11
        ++num;
        System.out.println(num);//12

        //混合使用,比如放到打印中
        //后++
        int num2 = 10;
        System.out.println(num2++);//10
        System.out.println(num2);//11

        //前++
        int num3 = 10;
        System.out.println(++num3);//11
    }
}

注意事项:

  • 只有变量可以使用自增自减
7、赋值运算符

注意事项

  • 只有变量才能使用赋值运算符,常量不能进行赋值
  • 复合赋值运算符其中隐含了一个强制类型转换
public class HelloWorld{
    public static void main(String[] args){
        int a = 10;
        a+=5;
        System.out.println(a);

        int b = 10;
        b -= 5;
        System.out.println(b);

        int c = 10;
        System.out.println(c*=5);

        int d = 10;
        System.out.println(d/=5);

        int e = 10;
        System.out.println(e%=3);

        byte f = 10;
        //f = f+5
        //f = byte + int
        //f = int + int
        //f = int
        //f = (byte)int
        f += 5;
        System.out.println(f);
    }
}
8、比较运算符

==、<、>、<=、>=、!=

注意事项

  • 比较运算符的结果一定是一个boolean值,成立就是true,不成立就是false
  • 多次判断不能连着写,比如1 < x <3
public class HelloWorld{
    public static void main(String[] args){
        System.out.println(10 == 20);//false

        int a = 10;
        int b = 20;
        System.out.println(a == b);//false

        System.out.println(a<b);//true
        System.out.println(a!=b);//true
        System.out.println(b<=20);//true
    }
}
9、逻辑运算符

与(并且)  &&    全部是true,才是true;否则就是false
或(或者)  ||   至少一个是true,就是true,否则就是false
非(取反) ! 本来是true,变成false;本来是false,变成true

注意事项

  • 与(&&),或(||),具有短路效果,即如果左边已经可以判断得到最终结果,那么右边的代码将不再执行,节省一定的性能
  • 逻辑运算符只能用于boolean值
  • 与、或需要左右各有一个boolean值,但取反只需要唯一的一个boolean值即可
  • 与、或两种运算符,如果有多个条件,可以连续写,比如:条件A && 条件B && 条件C
public class HelloWorld{
    public static void main(String[] args){
        System.out.println(true && false);//false
        System.out.println(true && true);//true
        System.out.println(3<4 && 3>4);//false
        System.out.println(3<4 && 3>2);//true

        System.out.println(true || false);//true
        System.out.println(false || false);//false
        System.out.println(3>2 || 3<2);//true
        System.out.println(3<2 || 3<1);//false

        System.out.println(!true);//false
        System.out.println(!(3<4));//false

        int a = 10;
        int b = 20;
        System.out.println(3<2 && ++a<100);//与,第一个是false,所以阻断后面的代码执行
        System.out.println(3>2 || ++b<100);//或,第一个是true,阻断后面代码执行
        System.out.println(a);//10
        System.out.println(b);//20
    }
}
10、三元运算符

格式:数据类型 变量名称 = 条件判断 ? 表达式A:表达式B
流程:
首先判断条件是否成立:
  如果成立为true,那么将表达式A的值赋值给左侧的变量;
  如果不成立为false,那么将表达式B的值赋值给左侧的变量

注意事项:

  • 必须同时保证表达式A和表达式B都符合左侧数据类型的要求
  • 三元运算符的结果必须被使用,比如打印
public class HelloWorld{
    public static void main(String[] args){
        int a = 10;
        int b = 20;

        //数据类型 变量名称 = 条件判断?表达式A:表达式B
        //判断a大于b是否成立,如果成立,将a赋值给max,如果不成立,将b赋值给max
        int max = a > b ? a : b;
        System.out.println(max);

        //int num = 3 > 4 ? 2.5 : 3;//冒号左右两边必须同时满足左侧的数据类型,这是错误写法
        //a > b ? a : b;
        System.out.println(a > b ? a : b);
    }
}

相关文章

  • Java(JavaEE)学习线路图1

    Java教程 Java 教程Java 简介Java 开发环境配置Java 基础语法Java 对象和类Java 基本...

  • Java学习线路图

    Java教程 Java 教程Java 简介Java 开发环境配置Java 基础语法Java 对象和类Java 基本...

  • 大数据学习线路图

    Java教程 Java 教程Java 简介Java 开发环境配置Java 基础语法Java 对象和类Java 基本...

  • 大数据学习教程

    Java教程 Java 教程Java 简介Java 开发环境配置Java 基础语法Java 对象和类Java 基本...

  • 一篇文章,全面解读Android面试知识点

    Java Java基础 Java集合框架 Java集合——ArrayList Java集合——LinkedList...

  • java学习路线

    javaSE java基础语法 java文件操作 java网络操作 java多线程 java数据库操作 java ...

  • java编程分类

    一、java简介java开发环境配置java基础语法java对象与类java基本数据类型java变量类型java修...

  • Java-01初识Java

    Java的3大版本 Java有三大版本,Java SE, Java ME, Java EE Java SE(Jav...

  • JAVA循环语句(四)9.29

    Java条件 if Java条件if...else Java条件多重if Java条件语句 嵌套if Java条件...

  • Java 基础

    Java 基础01Java开发入门 Java 基础02Java编程基础 Java 基础03面向对象 Java 基础...

网友评论

      本文标题:Java

      本文链接:https://www.haomeiwen.com/subject/suydvctx.html