zoukankan      html  css  js  c++  java
  • Java基础(一)

    因为最近工作用到java,所以了解一些java的知识,当然这篇文章也是适用于有语言基础的,因为是用于快速熟悉java的一些语法规范,并没有整理细节的内容,零基础的不适合看这篇文章

    Hello world

    老规矩先来hello world代码:

    package study_java.ex01;
    
    public class HelloWorld {
        public static void main(String[] args){
            System.out.println("hello world");
        }
    }

    注释

    // 表示单行注释
    /* */ 表示多行注释

    Java语言的关键字

    Java关键字的特点:
    组成关键字的字母全是小写
    常碰到的关键字有:

    标识符要求(变量)

    • 不能数字开头
    • 不可以使用关键字
    • 严格区分大小写

    Java中的名称规范:

    • 包含多词组组成时,都小写
    • 类名接口名,多个单词组成时,使用大驼峰方式
    • 变量名和函数名:多个单词组成时,小驼峰法
    • 常量名:所有的字母都大写,多单词时每个单词用下划线连接

    常量

    不能改变的数值

    整数常量
    小数常量
    布尔型常量
    字符串常量
    null常量

    变量

    数据类型 变量名 = 初始化值

    变量的作用范围,就是它所在的{}内部

     自动类型转换也叫隐式类型转换
    强制类型转换也叫显式类型转换

    package study_java.ex01;
    
    public class TypeConvert {
        public static void main(String[] args){
            byte b = 100;
            int i = b;   // 这里就是进行了隐式转换
    
            byte b2 = (byte)i;   // 这里是显式转换
            System.out.println(b2);
        }
    }

    表达式的数据类型自动提升:
    byte short char 提升到int

        byte b3 = 3;
        int x = 4;
        x = x + b3;     // b3会自动提升为int类型进行运算
        System.out.println(x);

    运算符

    算术运算符

    赋值运算

    = += -= *= /= %=

    比较运算符

    逻辑运算符

     

    位运算符

    关于三元运算
    实例代码:

    package study_java.ex01;
    
    public class IfDemo {
        public static void main(String[] args){
            int age = 100;
            if(age <= 50){
                System.out.println("小");
            }
            else{
                System.out.println("大");
            }
    
            // 更改为三元运算
            String str = age <= 50 ? "小":"大";
            System.out.println(str);
    
        }
    }

    流程控制

    判断结构

     

    选择结构

     

    switch语句特点:
    switch 语句只有四种类型的表达式:byte short int char

    case 之间与default没有顺序,先执行第一个case,没有匹配的case执行default
    结束switch语句有两种情况:遇到break, 执行到switch语句结束

    如果匹配的case或者default没有对应的break,那么程序会继续向下执行,直到遇到break或者switch结束

    代码例子:

    package study_java.ex01;
    
    public class SwitchDemo {
        public static void main(String[] args){
            char x = 1;
            switch(x){
                case 1:
                    System.out.println("x=1");
                    break;
                case 2:
                    System.out.println("x=2");
                    break;
                case 3:
                    System.out.println("x=3");
                    break;
                default:
                    System.out.println("x=?");
                    break;
    
            }
        }
    }

    循环结构

    while循环

    代码例子:

    package study_java.ex01;
    
    public class WhileDemo {
        public static void main(String[] args){
            int i = 0;
            while (i <= 10) {
                System.out.println(i);
                i++;
            }
        }
    }

    代码例子2:

    package study_java.ex01;
    
    public class WhileDemo2 {
        public static void main(String[] args){
            int i = 1;
            int sum =0;
            while (i <= 100){
                sum += i;
                i += 1;
    
            }
            System.out.println(sum);
        }
    }

    do while 循环

    代码例子:

    package study_java.ex01;
    
    public class DoWhileDemo {
        public static void main(String[] args){
            int i = 1;
            do {
                System.out.println(i);
            }while (i > 10);
        }
    }

    for循环

    代码例子:

    package study_java.ex01;
    
    public class ForDemo {
        public static void main(String[] args){
            for(int i = 0;i<10;i++){
                System.out.println(i);
            }
        }
    }

    打印一个九九乘法表:

    package study_java.ex01;
    
    public class ForDemo3 {
        public static void main(String[] args){
            for(int i = 1;i < 10;i++){
                for (int j = 1;j <= i;j++){
                    System.out.print(j + "*" + i + "=" + i*j + "	");
                }
                System.out.println();
            }
    
            System.out.println();
    
            for (int i = 9; i>0;i--){
                for (int j = 1;j<=i;j++ ){
                    System.out.print(j + "*" + i + "=" + i*j + "	");
                }
                System.out.println();
            }
        }
    }

    打印一个实心和空心的三角形

    package study_java.ex01;
    
    public class ForDemo4 {
        public static void main(String[] args){
    
            for(int i=1;i <= 5;i++){
                for(int j = 1; j<=9;j++){
                    if (j <= 5-i){
                        System.out.print(" ");
                    }
                    else if (9-j < 5-i){
                        System.out.print(" ");
                    }
                    else {
                        System.out.print("*");
                    }
                }
                System.out.println();
            }
    
            System.out.println();
    
            for(int i = 1;i<= 5;i++){
                for(int j = 1;j<=9;j++){
                    if (i == 5){
                        System.out.print("*");
                    }
                    else if (j == 5-i+1){
                        System.out.print("*");
                    }
                    else if ( 9-j == 5-i){
                        System.out.print("*");
                    }
                    else {
                        System.out.print(" ");
                    }
                }
                System.out.println();
            }
        }
    }

    函数

    函数就是定义在类中的具有特定功能的一段独立小程序
    函数也称为方法

    修饰符 返回值类型 函数名称(参数类型 参数名称,...) {
    执行语句;
    return 返回值;
    }

    函数特点:

    封装功能
    重用
    调用时才会被执行
    对于函数没有具体的返回值的情况,返回值类型用关键字void表示,那么该函数中的return语句如果在最后一行可以省略不写

    注意:
    函数中只能定义调用函数,不可以在函数内部定义函数
    定义函数时,函数的结果应该返回给调用者,交给调用者处理

    一个简单的函数例子:

    package study_java.ex01;
    
    public class FunctionDemo1 {
    
        public static void main(String[] args){
            int res = add(10,20);
            System.out.println(res);
        }
    
        public static int add(int a, int b){
            return a + b;
        }
    }

    函数递归:

    通过阶乘的两种写法来理解,其实就是自己调用自己:

    public static int fabric(int n) {
        int res = 1;
        for (int i=1;i<=n;i++){
            res *= i;
        }
        return res;
    }
    
    public static int fabric2(int n) {
        if (n == 1) {
            return 1;
        }
        else {
            return n * fabric2(n-1);
        }
    
    }

    函数重载

    在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可

    重载的特点:
    与返回值类型无关,只看参数列表
    例子代码:

    package study_java.ex01;
    
    public class FunctionDemo2 {
        public static void main(String[] args){
            add(10,3,2);
        }
        // add
        public static int add(int a, int b){
            return a+b;
        }
    
        // 重载add
        public static int add(int a, int b, int c){
            return a + b + c;
        }
        // 重载add
        public static float add(int a, float b) {
            return a + b;
        }
    
        // 重载add
        public static float add(float a, int b) {
            return a + b;
        }
    
    }

    函数的可变参数:

    public static int multiply(int... xyz){
        int sum = 0;
        for (int i =0;i <xyz.length;i++){
            System.out.println(i);
            sum += i;
        }
        System.out.println(sum);
        return sum;
    }

    数组

    同一种类型数据的集合,其实就是一个容器
    可以自动给数组中的元素从0开始编号,方便操作这些元素

    元素类型[] 数组名 = new 元素类型[元素个数或者数组长度]
    例子 int [] arr = new int[5]
    或者:

    元素类型[] 数组名 = new 元素类型[元素,元素,....]
    int [] arr = new [1,2,3,4]

    数组这里的一些练习题,通过一些排序来熟悉:
    冒泡排序,以及选择排序

    package study_java.ex01;
    
    public class BubbleDemo1 {
        public static void main(String[] args) {
            int[] arr = {1,4,90,22,12,20,99};
            select(arr);
            for (int i =0;i<arr.length;i++){
                System.out.println(arr[i]);
            }
        }
    
        public static void bubble(int[] arr){
            int tmp = 0;
            for (int i= 0; i< arr.length -1;i++){
                for (int j=0;j<arr.length -1 - i;j++){
                    tmp = arr[j];
                    if (arr[j] > arr[j+1]){
                        arr[j] = arr[j+1];
                        arr[j+1] = tmp;
                    }
                }
            }
        }
    
        public static void bubble2(int[] arr){
            int tmp =0;
            for (int i = 0; i < arr.length-1;i++){
                for (int j=0;j<arr.length-1-i;j++){
                    tmp = arr[j];
                    if (arr[j] < arr[j+1]){
                        arr[j] = arr[j+1];
                        arr[j+1] = tmp;
                    }
                }
            }
        }
    
        public static void select(int[] arr){
            int tmp = 0;
            for(int i = 0;i < arr.length-1;i++){
                int min_loc = i;
                for (int j=i+1;j<arr.length;j++){
                    if (arr[j] < arr[min_loc]){
                        min_loc = j;
                    }
                }
                tmp = arr[i];
                arr[i] = arr[min_loc];
                arr[min_loc] = tmp;
            }
        }
    }
  • 相关阅读:
    Java 线程池原理分析
    基于 Java NIO 实现简单的 HTTP 服务器
    Java NIO之选择器
    Java NIO之套接字通道
    Django【基础篇-1】
    paramiko_sftp封装
    python random模块生成随机验证码
    Python3 os与sys模块用法
    python生成器并行实例
    python装饰器无参及有参案例
  • 原文地址:https://www.cnblogs.com/zhaof/p/9248913.html
Copyright © 2011-2022 走看看