Java学习笔记--快速入门

本文概述了廖雪峰老师的Java教程,内容包括Java基础、数据类型、运算、控制结构、输入输出、数组、流程控制、字符串处理及命令行参数。深入浅出地介绍了变量、浮点数处理、布尔运算、字符与字符串、数组操作和Java核心技术要点。
摘要由CSDN通过智能技术生成

廖雪峰老师的java教程                                                                -------------2021.8.21,wudibooo


Java程序基础 

java简介

【JDK】

【JVM】

java程序基本结构

变量和数据类型

   [这四个是整型]

  • byte 1 [数字表示字节数]
  • short 2 
  • int  4 
  • long 8 

这两个是浮点型

  • float 4 ,需要加上f后缀
  • double 8 

  • char 2
  • string 字符串
  • final 常量
  • var 关键词
    var man = new ManClass() //等于ManClass man = new ManClass()

整数运算

【溢出问题】

【i++,++i】:前者是先赋值,再加,后者相反

移位

  • >> :右移,低位舍弃,高位根据符号位补位,整数补0,负数补1
  • >>>:无符号右移,无论怎么样都补零
  • <<:左移,舍弃高位,低位补0

运算优先级

  • ()
  • ! ~ ++ --
  • * / %
  • + -
  • << >> >>>
  • &
  • |
  • += -= *= /=

类型变换

  • 在不同类型的整型相加时,结果时最大的那个类型
  • 强制转换时,高转低,溢出会舍弃高位的数据,出现错误。
    int i1 = 1234567;
    short s1 = (short) i1; // -10617

浮点数运算

【精确问题】:在计算机中,有的浮点数无法用用二进制精确保存,比如0.1

溢出问题

浮点数的比较】:一般是计算两者的绝对值得差,来判断T or F

类型转换

  • 整型会自动转浮点型
  • 可以将浮点型强制转为整型,但超出范围后将始终返回整型的最大值。

布尔运算

【关系运算符】

【短路运算】:如果一个布尔运算的表达式能提前确定结果,则后续的计算不再执行,直接返回结果。

boolean b = 5 < 3; //后面5/0 原本会报错,但是无论如何0与谁都得到0,所以没有报错
boolean result = b && (5 / 0 > 0); 

【三元运算符】b? x:y

字符和字符串

【char】:保存一个Unicode字符

char是基本类型,字符串类型String是引用类型】:基本类型的变量是“持有”某个数值,引用类型的变量是“指向”某个对象。

tips

  • 语句从左到有执行。
            int a = 72;
            int b = 105;
            int c = 65281;
            // FIXME:
            String s = ""+(char)a +(char)b +(char)c;   //Hi!
    //先生成一个空字符,在用char对a,b,c分别转为Unicode
    

数组类型

【数组的定义】

整形数组:值类型

int [] lsit = new int [5] //长度为5 , 初始值: int 0 float 0.0 boolfalse
int [] list = new int [] {1,2,3,4,5,6} //自动计算
int [] list = {1,2,3,4,5,6}

字符串数组:引用类型

String[] names = {"ABC", "XYZ", "zoo"};


2021.8.22

流程控制

输入和输出

【printl    and     print】:不需要换行就用print

【格式化输出】:printf

        System.out.printf("%.2f\n", d); // 显示两位小数3.14
        System.out.printf("%.4f\n", d); // 显示4位小数3.1416

 【占位符】:

%d格式化输出整数
%x格式化输出十六进制整数
%f格式化输出浮点数
%e格式化输出科学计数法表示的浮点数
%s格式化字符串

 【输入】:比较麻烦,要import java.util.Scanner

import java.util.Scanner;
public class hellow {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);  //新建一个对象
        System.out.println("please input:");
        String line = scanner.nextLine();    //接受一个string line  ,还有nextint
        System.out.println(line);
    }
}

if判断

if( 条件1 ){
    语句1
}else if( 条件2 ){
    语句2
}else{
    语句3
}

 【判断应用类型】:就算值相同,在用==时,两者也不一定相等,要比较内容需要用equals()方法

swtich多重选择

        switch (option) {
        case 1:  //条件也可以是字符串
            System.out.println("Selected 1");
            break;
        case 2:
            System.out.println("Selected 2");
            break;
        case 3:
            System.out.println("Selected 3");
            break;
        default:  //没有条件匹配,就执行dafault
            System.out.println("Not selected");
            break;
        }

 【tips】:java12之后可以不写break

        switch (fruit) {
        case "apple" -> System.out.println("Selected apple");
        case "pear" -> System.out.println("Selected pear");
        case "mango" -> {   //多个语句要用花括号
            System.out.println("Selected mango");
            System.out.println("Good choice!");
        }
        default -> System.out.println("No fruit selected");
        }

 【yield】:swtich可以直接返回值,如果语句多需要利用yield来返回值

        int opt = switch (fruit) {
            case "apple" -> 1;
            case "pear", "mango" -> 2;
            default -> {
                int code = fruit.hashCode();
                yield code; // switch语句返回值
            }
        };

while循环

【先判断循环条件,再执行循环

while (条件表达式) {
    循环语句
}

do while循环

【先执行循环,再判断条件】

do {
    执行循环语句
} while (条件表达式);

for 循环

        for (int i=1; i<=100; i++) { 
//先初始化int i =1,再判断条件,成立则执行下面的语句,最后更新计数
            sum = sum + i;
        }

for each循环】:通常java用来遍历数组,类似python的 for in ,注意不是;是:

        for (int n : ns) {
            System.out.println(n);
        }

break和continue

【break跳出自己所在的循环】【continue跳出本次的循环】


数组操作

遍历数组

【for】

【for each】

【java.util.Arrays】:Arrays.toString(ns)

数组排序

冒泡排序】:一个个怼上去

java.util.Arrays:Arrays.sort()

多维数组

//二维
int [][] ns ={
        {1,2},
        {3,4}
    } 
//三维
int [][][] ns ={
    {
        {1,2},
        {3,4}
    } ,
    {
        {1,2},
        {3,4}
    } 
}

 【三维数组内存结构】

【遍历方法】:对每一层都用for each 

        for (int[] i : scores){
    for (int j : i){sum = sum+j;}
}

命令行参数

  • 命令行参数类型是String[]数组
  • 命令行参数由JVM接收用户输入并传给main方法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值