Java关键字(50个)(超详细!)

关键字 大致含义
abstract 表明类或者成员方法具有抽象属性
assert 断言,用来进行程序调试
boolean 基本数据类型之一,声明布尔类型的关键字
break 提前跳出一个块
byte 基本数据类型之一,字节类型
case 用在 switch 语句之中,表示其中的一个分支
catch 用在异常处理中,用来捕捉异常
char 基本数据类型之一,字符类型
class 声明一个类
const 保留关键字,没有具体含义
continue 回到一个块的开始处
default 默认,例如,用在 switch 语句中,表明一个默认的分支
do 用在 do-while 循环结构中
double 基本数据类型之一,双精度浮点数类型
else 用在条件语句中,表明当条件不成立时的分支
enum 枚举
extends表明一个类型是另一个类型的子类型,这里常见的类型有类和接口
final 表示不可变,最终的
finally 用于处理异常情况,用来声明一个基本肯定会被执行到的语句块
float 基本数据类型之一,单精度浮点数类型
for 一种循环结构的引导词
goto 保留关键字,没有具体含义
if 条件语句的引导词
implements 表明一个类实现了给定的接口
import 表明要访问指定的类或包
instanceof 用来测试一个对象是否是指定类型的实例对象
int 基本数据类型之一,整数类型
interface 接口
long 基本数据类型之一,长整数类型
native 用来声明一个方法是由与计算机相关的语言(如 C/C++语言)实现的
new 用来创建新实例对象
package
private一种访问控制方式:私用模式
protected 一种访问控制方式:保护模式
public 一种访问控制方式:共用模式
return 从成员方法中返回数据
short 基本数据类型之一,短整数类型
static 表明具有静态属性
strictfp用来声明 FP_strict(单精度或双精度浮点数)表达式遵循IEEE 754 算术规范
super 表明当前对象的父类型的引用或者父类型的构造方法
switch 分支语句结构的引导词
synchronized 表明一段代码需要同步执行
this 指向当前实例对象的引用
throw 抛出一个异常
throws 声明在当前定义的成员方法中所有需要抛出的异常
transient 声明不用序列化的成员域
try 尝试一个可能抛出异常的程序块
void 声明当前成员方法没有返回值
volatile 表明两个或者多个变量必须同步地发生变化
while 用在循环结构中
null引用数据类型默认初始值
  • 13
    点赞
  • 91
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
读取过 10G 大小的文本文件需要使用一些特殊的技巧,比如分块读取、多线程读取等。下面是一个基于多线程的 Java 程序,可以读取桌面上过 10G 大小的 txt 文件,找到包含指定关键字的行,并将其保存到集合中: ```java import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class ReadBigTxtFile { // 指定待读取的文件路径 private static final String FILE_PATH = System.getProperty("user.home") + "/Desktop/bigfile.txt"; // 指定需要查找的关键字 private static final String TARGET = "hello"; // 定义一个集合,用于保存找到的结果 private static final List<String> RESULTS = new ArrayList<>(); public static void main(String[] args) { // 获取文件大小 long fileSize = new File(FILE_PATH).length(); System.out.println("File size: " + fileSize); // 计算每个线程需要读取的字节数 int threadCount = Runtime.getRuntime().availableProcessors(); long blockSize = fileSize / threadCount; System.out.println("Block size: " + blockSize); // 创建线程池 ExecutorService executor = Executors.newFixedThreadPool(threadCount); // 分块读取文件 long start = 0, end; for (int i = 0; i < threadCount; i++) { // 计算该线程需要读取的起始和结束位置 end = start + blockSize; if (i == threadCount - 1) { end = fileSize; } // 创建任务并提交到线程池中 executor.submit(new ReadTask(start, end)); // 更新起始位置,准备下一次读取 start = end + 1; } // 关闭线程池 executor.shutdown(); // 等待所有任务执行完毕 while (!executor.isTerminated()) { try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } // 输出找到的结果 System.out.println("Found " + RESULTS.size() + " lines containing \"" + TARGET + "\""); for (String result : RESULTS) { System.out.println(result); } } // 读取任务 private static class ReadTask implements Runnable { private final long start; private final long end; public ReadTask(long start, long end) { this.start = start; this.end = end; } @Override public void run() { try (BufferedReader br = new BufferedReader(new FileReader(new File(FILE_PATH)))) { // 跳过该线程之前的内容 br.skip(start); // 读取该线程负责的内容 String line; while ((line = br.readLine()) != null && br.getFilePointer() <= end) { if (line.contains(TARGET)) { RESULTS.add(line); } } } catch (IOException e) { e.printStackTrace(); } } } } ``` 上述程序中,我们先计算出文件大小和每个线程需要读取的字节数,然后创建线程池和多个读取任务,每个任务负责读取一个块的数据。程序通过 `BufferedReader` 逐行读取文件内容,如果某行包含了目标关键字,就将该行添加到集合中。最后,程序输出找到的结果。请注意,上述程序中指定的文件路径为桌面上的 `bigfile.txt` 文件,如果你的桌面上没有该文件,请自行创建一个并写入一些测试数据。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值