JAVA学习笔记DAY3——菜鸟教程Java基础


部分示例代码参考 菜鸟教程

Java运算符

算数运算符

  • 自增自减
    前缀++a为先自增,后表达式运算。
    后缀a++为先表达式运算,再自增。

关系运算符

位运算符

按二进制的位进行运算

  • & 位与(对应位都是1,则结果为1)
  • | 位或
  • ^ 非 (对应位值相同则为0,否则为1)
  • ~ 按位取反
  • << 按位左移
  • 按位右移

  • 按位右移补零

逻辑运算符

  • && 逻辑与
  • || 逻辑或
  • ! 逻辑非
    逻辑与可能导致短路
public class LuoJi{
    public static void main(String[] args){
        int a = 5;//定义一个变量;
        boolean b = (a<4)&&(a++<10);
        System.out.println("使用短路逻辑运算符的结果为"+b);
        System.out.println("a的结果为"+a);
    }
}
/*
使用短路逻辑运算符的结果为false
a的结果为5,没有++,因为在a<4为否后就短路了。
*/

赋值运算符

  • +=
  • *=
  • %=
  • <<=
  • &=
  • ……

条件运算符( ?: )

java

b = (a == 1) ? 20 : 30;

python

b = 20 if a==1 else 30 

instanceof 运算符

String name = "James";
boolean result = name instanceof String; // 由于 name 是 String 类型,所以返回真

Java循环结构

  • while
  • do … while (比起while来说,在第一次执行时不判断,即至少会执行一次)
  • for
for(int x = 10; x < 20; x += 1){
}

Java增强for循环
主要用于数组

String [] names ={"James", "Larry", "Tom", "Lacy"};
      for( String name : names ) {
         System.out.print( name );
         System.out.print(",");
      }
//James,Larry,Tom,Lacy,

关键字

  • break 跳出循环
  • continue 跳转到下一次循环

条件语句

if … else if … else

swich case 语句

  1. 变量类型支持 byte / short / int /char / String
  2. default:一般放在最后一个,case都不匹配时执行
  3. 若case1匹配成功,且其中没有case语句,后续case都会输出。若后续的case有break则会跳出判断。
public class SwitchCase {
    public static void main(String[] args){
        int i=1;
        switch (i){
            case 0:
                System.out.println("0");
            case 2: 
                System.out.println("2");
            case 1:
                System.out.println("1");
            case 3: 
                System.out.println("3");
            default:
                System.out.println("default");

        }
    }
}

1
3
default

Number & Math 类

八大内置基本数据都有对应的包装类。
其中(Integer / Long / Byte / Double / Float / Short)都是抽象类Number的子类。
Number类属于java.lang包。

Character 类

// 原始字符 'a' 装箱到 Character 对象 ch 中
Character ch = 'a';
 
// 原始字符 'x' 用 test 方法装箱
// 返回拆箱的值到 'c'
char c = test('x');

String 类

创建字符串

String str = "Hello Java";
//or
String str2 = new String ("Hello Java");

String类的值是无法改变的,如果需要做很多修改,应使用StringBuffer & StringBuilder类。

字符串长度

.length()

连接字符串

  • string1.concat(string2);
  • ‘+’ 操作符

创建格式化字符串

  • printf()
  • format()可以返回一个String对象,可复用。

StringBuffer 和 StringBuilder 类

两者比较:StringBuilder有速度优势,但不是线程安全的(不能同步访问)
.append(“”)
.insert(起始下标,“”)
.delete(起始下标,终止下标)

Java数组

声明数组变量

dataTyte[] arrayRefVar //首选,与C系相同
or
dataType arrayRefVar[]

double[] myList

创建

arrayRefVar = new dataType[arraySize];

可以和声明写到一起

double[] myList = new double[size];

遍历

  • for循环
for (int i = 0; i < myList.length ; i++){
}
  • for-each循环
    遍历全部数组
for (double element: myList){
}

函数中的数组

public class ArrayTest {
    // 一个参数和返回值都为数组的方法
    public static int[] reverse(int[] list){
        int[] result = new int[list.length];
        for (int i=0,j=list.length-1;i<list.length;i++,j--){
            result[j]=list[i];
        }
        return result;
    }

    public static void main(String[] args){
        int[] myList = {1,2,3,4,5};
        int[] revList = reverse(myList);
        //这样输出是不对滴
        //System.out.println(revList);
        //这样依次输出数组元素
        for (int element:revList){
            System.out.println(element);
        }
    }
}

多维数组

String[][] str = new String[3][4];//先行数后列数

Java日期时间

Date类

import java.util.Date;

	Date date = new Date();
	System.out.println(date.toString());

格式化日期

SimpleDateFormat

import java.util.*;
import java.text.* ;
public class DateTest {
    public static void main(String[] args){
        Date dNow = new Date();
        SimpleDateFormat ft = new SimpleDateFormat("yyy-MM dd_hh:mm::ss");
        System.out.println("当前时间为:"+ ft.format(dNow));
    }
}

当前时间为:2024-06 09_10:40::59

printf

%t

休眠(sleep)

import java.util.*;
  
public class SleepDemo {
   public static void main(String[] args) {
      try { 
         System.out.println(new Date( ) + "\n"); 
         Thread.sleep(1000*3);   // 休眠3秒
         System.out.println(new Date( ) + "\n"); 
      } catch (Exception e) { 
          System.out.println("Got an exception!"); 
      }
   }
}

测量时间

正则表达式

方法

方法的重载

一个类的两个方法有相同的名字,但是有不同的参数列表。

可变参数

声明方法时,参数类型后加省略号(…)

finalize() 方法

在 finalize() 方法里,你必须指定在对象销毁时候要执行的操作。

Java流(Stream)、文件、IO

一个流可以理解为一个数据的序列。输入流表示从一个源读取数据,输出流表示向一个目标写数据。

控制台输入

System.in 可包装在BufferedReader对象中

控制台多字符输入

read()

从控制台读取字符串

readLine()

控制台输出

print()
println()
write()

读写文件

FileInputStream

FileOutputStream

文件和I/O相关的类

File
FileReader
FileWriter

Java中的目录

创建目录:

mkdir()
mkdirs()

读取目录

一个目录就是一个File对象
isDirectory()
list()

删除目录

java.o.File.delete()

Scanner类

获取输入

Scanner s = new Scanner(System.in);

next()
nextLine()
hasNext
hasNextLine

Java 异常处理

检查型异常

try-catch
throws

运行时异常

Exception 类的层次

finally

try-with-resources

try (resource declaration) {
  // 使用的资源
} catch (ExceptionType e1) {
  // 异常块
}

声明自定义异常

通用异常

  • JVM异常
  • 程序级异常
  • 16
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值