JavaSe阶段基础语法


java入门

java诞生过程:1972年诞生c语言,因为指针和内存管理复杂,难以移植性。1982年产生了改进后的c++但是还是很复杂,于是在1995年就建立了java语言。

java优点:

  • 语法有点像c

  • 没有指针

  • 没有内存管理

  • 运行在jvm上,实现了真正的一次编译到处运行

  • 面向对象

  • 类型安全

    ……

    java三大版本:

    • javase:标准版(桌面程序,控制台……)
    • javame:嵌入式开发(手机,家电…… ) 已经淘汰
    • javaee:企业级开发(web,服务端……)发展最好

    jdk,jre,jvm的关系:

    • jdk:java开发环境。包括jre和jvm
    • jre:java运行环境。包含jvm。
    • jvm:java运行虚拟机。模拟cpu运行java程序。

    编译型和解释型:

    都是翻译程序的意思,将一种语言翻译成另一种机器语言。

    编译:编译成一个字节码文件,保存。

    解释:执行一句翻译一句,不生成字节码文件。

    java基础

    1.注释,标识符,关键字

    注释:注释不会被计算机执行,是给编程人员看的,为了方便阅读代码。

    java中的三种注释:

    单行注释://

    多行注释:/* ……*/

    文档注释:/**…… */

    /**
     * @author panglili
     * @create 2022-07-13-8:36
     */
    public class HelloWorld {
        public static void main(String[] args) {
            System.out.println("HelloWorld");
            //单行注释
            /*
              多行注释
              多行注释
              多行注释
             */
            /**
             * 文档注释
             * 文档注释
             */
        }
    }
    

    标识符

    java所有的组成部分都是有名字的。如类名,变量名,方法名等都被称为标识符。

    关键字

    系统定义的有特殊含义的标识符,不可再被用户定义为类名,变量名,方法名……

    2.数据类型

    java八大类型:

    int:4字节

    short:2字节

    byte:1字节

    long:8字节

    以上为整数类型

    float:4字节

    double:8字节

    以上为浮点类型

    char:2字节

    以上为字符类型

    boolean:1

    以上为布尔类型

    /**
     * @author panglili
     * @create 2022-07-13-9:04
     */
    public class NumType {
        public static void main(String[] args) {
            int a=1;
            byte b=127;
            String c="123";
            long d=1276543223999999999L;//long类型后面加L区别
            char e='a';
            float f=1.2F;//float类型后面加F
            double g=2.22;
           boolean fa=false;
           boolean tr=true;
                    
        }
    }
    

    扩展:进制

    二进制:0b

    十进制:正常

    八进制:0

    十六进制:0x

    int i=0; //十进制
    int i0=0b101; //二进制
    int i1=077; //八进制
    int i2=0xA1; //十六进制
    

    浮点数使用小tips:

    image-20220713095406091

    尽量不要用浮点数进行比较

    3.类型转换

    byte,short,char->int->long->float->double

    由高字节到低字节转换需要强制类型转换:可能会产生内存溢出或者精度溢出

    由低字节到高字节转换会自动类型转换

    /**
     * @author panglili
     * @create 2022-07-13-10:02
     */
    public class TypeTransfer {
        public static void main(String[] args) {
            int i=128;
            byte b=(byte)i;
            System.out.println(i);  //强制转换,int到byte
            System.out.println(b); //强制转换,内存溢出
            
            float f=3.14f;
            System.out.println((int)f);//强制转换,精度丢失
    
            int a=b;
            System.out.println(a);//自动转换,byte到int
        }
    }
    

    4.变量,常量

    变量:java中初始化后依旧可以变化的量。

    常量:java中初始化后不可变化的量。使用final定义。

    /**
     * @author panglili
     * @create 2022-07-13-10:15
     */
    public class VariableConstant {
        public static void main(String[] args) {
            //定义变量赋初值
            int a=1;
            String name="tata";
            System.out.println(a);
            System.out.println(name);
            //改变变量的值
            a=2;
            name="panglili";
            System.out.println(a);
            System.out.println(name);
            
             //常量
            final int B=3;
            // b=4; 报错不可改变其值
            System.out.println(b);
        }
    }
    

    5.运算符

    算术运算符:+,-,*,/,%,++,–……

    赋值运算符:+=,=,-=……

    关系运算符:>,<,>=……

    逻辑运算符:&&,||,

    位运算符:|,&,^,~,>>,<<

    条件运算符: ?:

    扩展赋值运算符:

    6.包机制

    相当于一个文件夹,方便分类管理。

    在公司中一般就是公司域名倒置,用来建包。

阿里巴巴开发手册,都是java基础的规范约定,可以看看规范自己的编码!!!

java流程控制

1.用户交互scanner

扫描用户输入,进行操作。

package com.javase.grammer;

import java.util.Scanner;


/**
 * @author panglili
 * @create 2022-07-13-11:17
 */
public class ScannerUse {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入输入s:");
        String s = scanner.next();
        System.out.println("输入的结果如下:");
        System.out.println(s);
        scanner.close();
    }
}

scanner进阶使用:判断输入的是否是整数,同理可判断其他数据类型。

package com.javase.grammer;

import java.util.Scanner;


/**
 * @author panglili
 * @create 2022-07-13-11:17
 */
public class ScannerUse {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
       System.out.println("请输入:");

        if(scanner.hasNextInt()){
            System.out.println("输入了整数");
        }else{
            System.out.println("输入的不是整数");
        }
    }
}

输入n个整数以非整数结束,计算输入的整数和。

package com.javase.grammer;

import java.util.Scanner;

/**
 * @author panglili
 * @create 2022-07-13-11:40
 */
public class ScannerCalculate {
    public static void main(String[] args) {

        int sum=0;
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入:");
        while(scanner.hasNextInt()){

            sum+=scanner.nextInt();
        }
        System.out.println(sum);
    }
    scanner.close();
}

2.顺序结构

最基本的结构,按照顺序一条一条的执行。

System.out.println("1");
System.out.println("2");
System.out.println("3");
System.out.println("4");
System.out.println("5");

会按照顺序一条一条输出1,2,3,4,5

3.选择结构

if单选择

if多选择

嵌套if

switch多选择

package com.javase.grammer;

import com.sun.org.apache.xml.internal.res.XMLErrorResources_tr;

/**
 * @author panglili
 * @create 2022-07-13-11:52
 */
public class Structure {
    public static void main(String[] args) {


        //if单选
        int a=1;
        int b=2;
        if(a==1){
            System.out.println("正确");
        }else
            System.out.println("错误");

        //if多选
        if(a>1){
            System.out.println("大于");
        }
        if(a<1){
            System.out.println("小于");
        }
        if(a==1){
            System.out.println("等于");
        }

        //嵌套
        if(a==1){
            if(b>1){
                System.out.println("b>a");
            }
            else
                System.out.println("b<a");
        }else
            System.out.println("条件1不成立,未进入嵌套");
        
         int a=3;
        switch (a){
                    case 1:
                System.out.println("1");
                    break;
                    case 2:
                System.out.println("2");
                    break;
                    
                    case 3:
                System.out.println("3");
                    break;
                    case 4:
                System.out.println("4");
                    break;
                    default:
                        System.out.println("未匹配到");
        }
    }
}

4.循环结构

for:写结束条件

while:表达式为true就会一直循环。

do……while:先循环一次再判断。

package com.javase.grammer;

/**
 * @author panglili
 * @create 2022-07-13-12:10
 */
public class Circle {
    public static void main(String[] args) {
        //for 循环输出1到100
        for(int i=1;i<=100;i++){
            System.out.println(i);
        }
        //while循环输出1-100
        int i=0;
        while(i<100){
            i++;
            System.out.println(i);
        }
    }
}

九九乘法表打印

package com.javase.grammer;

/**
 * @author panglili
 * @create 2022-07-13-15:48
 */
public class MultiplicationTable {
    public static void main(String[] args) {
        for(int a=1;a<10;a++){        //a控制行数
            for(int b=1;b<=a;b++){    //b控制列数,应该等于行数
                System.out.print(a+"*"+b+"="+a*b);
                System.out.print("/t");
            }
            System.out.println("");
        }
    }
}

java5新特性:for(变量:表达式),常用于遍历数组和集合。

package com.javase.grammer;

/**
 * @author panglili
 * @create 2022-07-13-15:58
 */
public class ForNum {
    public static void main(String[] args) {
        int [] nums={1,2,3,4,5,6};
        for(int i:nums){
            System.out.println(i);
        }
    }
}

5.break,continue的使用

break :会强制退出循环,不执行剩余的循环。

continue:跳过这次循环,剩余的循环继续执行。

package com.javase.grammer;

/**
 * @author panglili
 * @create 2022-07-13-16:03
 */
public class BreakContinue {
    public static void main(String[] args) {
        //使用了break,在打印到30的时候就会退出打印,控制台只打印了1-29
        for(int i=0;i<100;i++){
            if(i==30){
                break;
            }else
                System.out.println(i);
        }
        System.out.println("***************");
        //使用了continue,在打印到30的时候就会跳过,控制只是没有打印30
        for(int j=0;j<100;j++){
            if(j==30){
                continue;
            }else
                System.out.println(j);
        }
    }
}

原创文章,作者:carmelaweatherly,如若转载,请注明出处:https://blog.ytso.com/274092.html

(0)
上一篇 2022年7月13日
下一篇 2022年7月13日

相关推荐

发表回复

登录后才能评论