栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JavaSE基础学习

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JavaSE基础学习

一、数据类型
  1. 扩展
  • 浮点数
    float 和 double 不要用于比较
    浮点数的特点:有限、离散、舍入误差、接近但不等于
    例如:
public class Demo01 {
    public static void main(String[] args) {
        float f=0.1f;
        double d=1.0/10;
        System.out.println(f==d);//false

        float a=12121212122f;
        double b=a+1;
        System.out.println(a==b);//true
    }
}

  1. 类型的转换
  • 自动转换
    从低到高:
    byte,short,char -> int -> long -> float -> double
  • 强制转换
    从高到低:
    (类型)变量名
  • 注意:
    (1)不能对布尔值进行转换
    (2)转换时需要注意内存溢出问题或精度问题
    (3)操作过大时,需要注意溢出问题
public class Demo02 {
    public static void main(String[] args) {
        int i = 10;
        byte b=(byte) i;//强制转换
        System.out.println(b);

        int money=10_0000_0000;
        int year=20;
        long add= (long)money*year;//在计算时已经出现了问题,需要计算过程转变为long类型才可以正常显示
        System.out.println(add);
    }
}
二、变量和常量
  1. 变量
    (1) 类变量 -----static
    随类的出现而出现,随类的消失而消失,可以直接访问
    初始值为0、0.0、null,false
    (2)实例变量
    从属于对象,初始值为0、0.0、null,false
    (3)局部变量
    必须进行生声明和初始化
public class Demo04 {
    static double salary;//类变量

    String name;//实例变量

    public void method(){
     int a=0;//局部变量
    }

    public static void main(String[] args) {
        System.out.println(salary); //0.0  直接访问类变量

        Demo04 demo04= new Demo04();
        System.out.println(demo04.name);//null  访问实例变量
    }
}

  1. 常量 -----final
static final double salary=500;
三、命名规范
  • 类成员变量:首字母小写和驼峰原则 -----monthSalary
  • 局部变量:首字母小写和驼峰原则 -----monthSalary
  • 常量:大写字母和下划线 -----MONTH_SALARY
  • 类名:首字母大写和驼峰原则 -----MonthSalaty
  • 方法名:首字母小写和驼峰原则 -----monthSalary()
四、JavaDoc

javadoc命令是用来生成自己的API文档

  • 相关参数:
    @author 作者名
    @version 版本号
    @since 需要的jdk版本
    @param 参数名
    @throws 异常抛出情况
    @return 返回值情况
五、用户交互Scanner
Scanner scanner = new Scanner(System.in);//扫描所输入的内容

例如:
next() 与 nextLine()
next() 所输出的是所输入的内容中空格前的内容
nextLine() 所输出的是回车之前的所有内容

package com.zhang.scanner;
import java.util.Scanner;
public class Demo03 {
    public static void main(String[] args) {
        //创建扫描机器
        Scanner scanner = new Scanner(System.in);
        
        System.out.println("请输入数据:");
       
        String str = scanner.nextLine();//输出想要的类型的内容,这里为nextLine()类型的内容
        
        System.out.println("用户输入的数据为:"+str);//如果输入的是hello world,则输出为hello world;使用next(),则输出的是hello
        scanner.close();
    }
}
六、结构
  1. 顺序结构:从上到下的结构
  2. if 选择结构
  (1)单选择结构
if (布尔值表达式){
    // 布尔值为真将输出的内容
    ...
}

(2)双选择结构
if (布尔值表达式){
    // 布尔值为true
}else{
    //布尔值为false
}

(3)多选择结构(有一个if是true,其他的就都不执行)
if (布尔值表达式1){
    ...
}else if(布尔值表达式2){
    ...
}else if(布尔值表达式3){
    ...
}else{
    ...
}

  1. switch 选择结构
switch (expression){
    case value :
        ...//执行语句
        break;//防止向下穿透
    case value :
        ...//执行语句
        break;//防止向下穿透
    default :
        //其他情况
}
  1. 循环结构
    (1)while 循环(先判断后执行)
    (2)do…while 循环(先执行后判断)
    (3)for 循环
for ( 初始化 ; 布尔表达式 ; 更新){
    ...
}
// 增强 for 循环(主要用于遍历数组和集合对象)
for ( 声明语句 : 表达式 ){
    ...
}
七、break、continue
  1. break:用于任何循环体中的主体部分,强行退出循环,不执行循环中剩余的部分
  2. continue:用于循环语句中,终止某次循环,跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定
八、方法
修饰符 返回值类型 方法名(参数类型 参数值){
    ...
    方法体
    ...
    return 返回值 ;
}
  • 修饰符:定义了该方法的访问类型,可选

  • 参数类型:当方法被调用时,传递值给参数;分为形式参数和实际参数

    • 形参:在方法被调用时用于接收外界输入的数据
    • 实参:调用方法时实际传给方法的数据
  • 方法体:定义该方法的功能

  • 方法的重载:

  • 方法名称必须相同

  • 参数列表必须不同(个数、类型、参数排序顺序不同等)

  • 方法的返回值可以相同也可以不同

  • 只有返回值类型不同不足以成为方法的重载

九、可变参数(不定项参数)
  • 在声明方法中,在指定参数类型后加一个省略号(…)
  • 注意:一个方法中只能定义一个可变参数,他必须是方法的最后一个参数,任何普通的参数必须在他之前声明
public static void main(String[] args) {
        //调用可变参数的方法
        printMax(1,23,46,8,2,56,13,852);
        printMax(new double[]{2,452,6,5,23,5,2,3});
    }
    //输出最大值
    public static void printMax(double...numbers){
        if(numbers.length==0){
            System.out.println("没有找到数");
            return;
        }

        double result=numbers[0];
        //排序
        for (int i=1;i
            if (numbers[i]>result){
                result=numbers[i];
            }
        }
        System.out.println("最大值为"+result);
    }
十、递归
  • 递归方法就是自己调用自己,用于求解一些小规模问题的计算,大大减少程序的代码量。
    //阶乘
    public static void main(String[] args) {
        System.out.println(f(5));
    }
    public static int f(int a){
        if (a==0||a==1){
            return 1;
        }else if(a<0){
            System.out.println("请输入正数");
            return 0;
        }else {
            return a*f(a-1);
        }
    }
十一、数组
  1. 一维数组
  • 数组的声明
int[] arrary ;//首选方法
或
int arrary[] ;//效果相同,但不是首选方法
  • 静态初始化数组
int[] a = { 1 , 2 , 3 , 4 , 5 } ;
  • 动态初始化数组
int[] arrary = new int[10] ;
arrary[0]=...;
  1. 二维数组
int[][] arrarys = new int[2][3] ;// 二行三列的数组
  1. Arrays工具类
  • 常用功能:
    • 给数组赋值:通过fill方法
public static void fill(int[] a , int val) 

//将指定的int值分给指定的int数组的每个元素
//a - 要填充的数组 
//val - 要存储在数组的所有元素中的值 
public static void fill(int[] a , int fromIndex , int toIndex , int val) 

//将指定的int值分配给指定的int数组的指定范围的每个元素。 要填充的范围从索引fromIndex扩展到索引toIndex ,排他。(如果fromIndex==toIndex ,要填充的范围是空的。) 
//a - 要填充的数组 
//fromIndex - 要用指定值填充的第一个元素(包括)的索引 
//toIndex - 要用指定值填充的最后一个元素(排除)的索引 
//val - 要存储在数组的所有元素中的值 
  • 对数组排序:通过sort方法
public static void sort(int[] a)
//按照数字顺序排列指定的数组
  • 比较数组:通过equals方法
public static boolean equals(int[] a1 , int[] a2)
//如果两个指定的int数组彼此包含相同数量的元素、所有对应的元素对都相等相等 ,则返回true
  • 查找数组元素:通过binarySearch方法对排序好的数组进行二分查找法操作
import java.util.Arrays;
public class Demo02 {
    public static void main(String[] args) {
        int[] a = {56,1,48,64,2,6,78,81,};
        System.out.println(Arrays.toString(a));//[56, 1, 48, 64, 2, 6, 78, 81]

        Arrays.sort(a);
        System.out.println(Arrays.toString(a));//[1, 2, 6, 48, 56, 64, 78, 81]

        Arrays.fill(a,2,4,0);//在2<=x<4之间填充0
        System.out.println(Arrays.toString(a));//[1, 2, 0, 48, 56, 64, 78, 81]
    }
}
  1. 冒泡排序
public class Demo03 {
    public static void main(String[] args) {
        int[] a={1,265,254,951,5,25,3852,};
        System.out.println(Arrays.toString(a));
        sort(a);
        System.out.println(Arrays.toString(a));
    }

    public static int[] sort(int[] a){
        //外层循环,判断走多少次
        for (int i=0;i
            //内层循环,两两比较
            for (int j=0;j< a.length-1-i;j++){
                if (a[j]>a[j+1]){
                    int temp=a[j+1];
                    a[j+1]=a[j];
                    a[j]=temp;
                }
            }
        }
        return a;
    }
}
  1. 稀疏数组
public class Demo04 {
    public static void main(String[] args) {
        int[][] a1=new int[5][5];//定义数组
        a1[1][1]=1;
        a1[2][2]=2;//赋值

        System.out.println("原始数组:");
        //遍历a1
        for(int[] a:a1){
            for (int b:a){
                System.out.print(b+" ");
            }
            System.out.println();
        }

        //创建稀疏数组
        System.out.println("稀疏数组为:");
        //判断数组中非0元的个数数
        int sum=0;
        for (int i=0;i< 5;i++){
            for (int j=0;j<5;j++){
                if (a1[i][j]!=0){
                    sum++;
                }
            }
        }
        //稀疏数组的第0行
        int[][] a2=new int[sum+1][3];
        a2[0][0]=5;
        a2[0][1]=5;
        a2[0][2]=sum;
        //稀疏数组的其他行
        int count=0;
        for (int i=0;i
            for (int j=0;j
                if (a1[i][j]!=0){
                    count++;
                    a2[count][0]=i;
                    a2[count][1]=j;
                    a2[count][2]=a1[i][j];
                }
            }
        }
        //遍历稀疏数组

        for(int[] a:a2){
            for (int b:a){
                System.out.print(b+" ");
            }
            System.out.println();
        }

    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/988314.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号