【Java随笔】

Java学习—随笔

Java基本程序的构成

Java源代码通过编译器生成字节码字节码通过JVM(Java虚拟机)运行
在这里插入图片描述

数据类型

整型

在Java中,所有的数值类型所占据的字节数与平台无关,且Java没有任何无符号(unsigned)的 int、long、short、byte。

长整型数值有一个后缀 L或l(如:400000000000L);十六进制数值有一个前缀 0x 或 0X(如:0xCAFE);八进制数值有一个前缀 0(如:010对应十进制的8);二进制数值有一个前缀: 0b 或 0B(如:0b1001)。

浮点数

在Java中有两个浮点数类型:float 和 double,float 类型的数值有一个后缀 F或f(如:3.14F),没有后缀的浮点数总是默认为 double 类型。

字符串
  1. 字符串的长度:length()
  2. 取出字符串中的一个字符:charAt()
  3. 去除左右多余的空格:trim()
  4. 在一个字符串中查找某个字符串的位置:indexOf(),返回该字符串第一次出现的位置;
  5. 字符串拼接:substring(),两种调用方法:一是substring(开始索引,结束索引),左闭右开;二是substring(开始索引),从开始索引的位置直到最后;
  6. 字符串开始和结束内容判断:startsWith()/endsWith(),返回布尔值;
  7. 字符串替换或者删除:replaceAll("要替换的值","新值"),返回一个新的字符串,不会修改原来的字符串;
  8. 字符串分割:split("分割字符串"),以分割字符串为分割点将字符串分割并返回一个数组,特殊的:.|* 这三个做分割字符时需要在他们前面加上 \\
  9. 大小写转化:toUpperCase()/toLowerCase()
  10. 字符串比较:equals(),与==不同,后者有可能会出错;
  11. 转化字符串为数字:Integer.parseInt(str),返回一个数字;
  12. 数字转化为字符串:
public static void main(String[] args) {
    String str = "Java是一种广泛使用的计算机编程语言,于1995年5月以Java的名称正式发布。";

    int index = str.indexOf("Java");
	//查找某个字符串第二次出现的位置,传入第二个参数,从该参数位置开始查找
    index = str.indexOf("Java", index + 4);

    System.out.println("第二次匹配到了Java,索引位置是" + index);
  }
 public static void main(String[] args) {
    String fileName = "报告.doc";

    if(fileName.endsWith(".doc")){
      System.out.println("是word文档");
    }	
  }
 public static void main(String[] args) {
    String str = "Java是一种广泛使用的计算机编程语言,拥有跨平台、面向对象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。";
    String newStr = str.replaceAll("Java","Python");
    System.out.println(newStr);
    System.out.println(str);
  }

接口

接口是代表集合的抽象数据类型,有些类似C语言中的数据结构,例如:Collection、List、Map、Set 等等。而实现类是集合接口的具体实现,从本质上讲,他们是可重复使用的数据结构,例如:ArrayList、LinkedList、HashSet、HashMap。

在 Java 中接口是不能被直接实例化的,所以如果想得到一个接口类型的变量,需要new实现类得到:

// 创建一个字符串集合,用于存储多个字符串
List<String> strings = new ArrayList<>();

// 创建一个用户集合,用于存储多个用户信息,用户类是自定义的 class
List<User> users = new ArrayList<>();

异常

异常发生的原因主要有以下三点:

  • 用户输入了非法数据;
  • 要打开的文件不存在;
  • 网络通信时链接中断,或者JVM内存溢出。

捕获异常

List<String> strs = new ArrayList<>();
strs.add("a");
strs.add("b");

try {
     //IndexOutOfBoundsException
     System.out.println(strs.get(2));
     } catch (Exception e) {
     	//java.lang.IndexOutOfBoundsException: Index 2 out of bounds for length 2
        System.out.println(e);
     } finally {
         System.out.println("Finally is always printed!");
}

System.out.println("Catching the exception could keep code going.");

时间

时间对象的类型:yyyy-MM-ddTHH:mm:ss:SSS,获取当前时间对象:LocalDateTime now = LocalDateTime.now();getMonth()和getDayOfWeek()方法返回的是一个对象,所以需要ge'tValue()获取具体的值,而其他的方法不用。

//以某种格式转换时间对象为字符串类型
DateTimeFormatter dft = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
String nowDft = dft.format(now);

//将某种格式的时间字符串转换为时间对象
String str1 = "2022/01/12 21:54:00";
LocalDateTime time1 = LocalDateTime.parse(str, dft);

//若字符串满足格式: yyyy-MM-ddTHH:mm:ss 则不需要使用 formatter
String str2 = "2022-01-12T21:54:00";
LocalDateTime time2 = LocalDateTime.parse(str);

文件

导入import org.apache.commons.io.FileUtils;,使用 commons.io 更方便的读写文件

import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;

public class FileTest {

    public static void main(String[] args) {
        File file = new File("./data/users.txt");

        String content = null;
        List<String> lines = null;
        try {
        	//将全部数据读取并返回一个字符串
            content = FileUtils.readFileToString(file,"utf-8");
            //按行读取数据
            lines = FileUtils.readLines(file, "utf-8");
        } catch (IOException e) {
            e.printStackTrace();
        }
        
        //将字符串以某个特定字符划分为若干个字符串并存入数组中
        for(String line : lines) 
			String[] strings = line.split(" ");
		
        System.out.println(content);
    }

}

JSON 数据

序列化:将Java对象转化为Json字符串;
在这里插入图片描述
如果需要将LocalDateTime转化为JSON字符串,需要在声明变量前加入注解:

@JsonDeserialize(using = LocalDateTimeDeserializer.class)
@JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime gmtCreated;
ObjectMapper mapper = new ObjectMapper();
        for (User user : users) {
            try {
            	//将user对象转化为JSON字符串
                String string = mapper.writeValueAsString(user);
                System.out.println(string);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

帕特里克_海星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值