当前位置: 首页 > news >正文

java 10

  1. 线程安全计数(初学者最容易懂的并发代码)
    // 只用到最基础的Java语法,没有复杂类,直接运行
    public class SimpleCounter {
    // 用Java自带的原子类,保证多线程下计数不会出错
    private static int count = 0;

    public static void main(String[] args) throws InterruptedException {
    // 循环启动100个线程,每个线程加1000次
    for (int i = 0; i < 100; i++) {
    new Thread(() -> {
    for (int j = 0; j < 1000; j++) {
    // 加锁,保证同一时间只有一个线程执行+1
    synchronized (SimpleCounter.class) {
    count++;
    }
    }
    }).start();
    }

    // 等所有线程跑完,主线程再往下走
    Thread.sleep(2000);
    System.out.println("最终计数结果:" + count);
    }
    }
    运行结果一定是100000,不会出现少算的情况,刚好能帮你理解多线程安全的最基础逻辑。

  2. Stream流简单分组统计(替代for循环的简化版)
    import java.util.ArrayList;
    import java.util.List;
    import java.util.stream.Collectors;

public class SimpleStream {
public static void main(String[] args) {
// 先造个简单的学生分数列表
List scores = new ArrayList<>();
scores.add(85);
scores.add(59);
scores.add(92);
scores.add(76);
scores.add(48);

// 一行代码直接筛选出所有及格的分数,不用写嵌套for循环
List passScores = scores.stream()
.filter(score -> score >= 60) // 过滤条件:分数≥60
.collect(Collectors.toList());// 把结果转成列表

System.out.println("及格分数列表:" + passScores);
System.out.println("及格人数:" + passScores.size());
}
}
不用手写判断条件,几行代码就完成数据筛选,是日常写业务最实用的简化函数式用法。

  1. 异步任务简单演示(比多线程更简单的异步写法)
    import java.util.concurrent.CompletableFuture;

public class SimpleAsync {
public static void main(String[] args) throws Exception {
System.out.println("主线程开始执行...");

// 启动一个异步任务,后台慢慢跑,不卡主线程
CompletableFuture.runAsync(() -> {
System.out.println("子线程正在后台下载文件...");
try {
Thread.sleep(1000); // 模拟下载耗时1秒
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("子线程下载完成!");
});

// 主线程不用等下载,直接先做其他事
System.out.println("主线程正在处理其他任务...");

// 等异步任务全部做完再退出
Thread.sleep(2000);
}
}
运行后你能直观看到两个任务并行执行,比自己手动创建线程简单太多。

  1. 动态代理极简版(理解AOP最基础原理)
    import java.lang.reflect.InvocationHandler;
    import java.lang.reflect.Method;
    import java.lang.reflect.Proxy;

// 第一步:先定义一个简单的用户操作接口
interface UserService {
void sayHello();
}

// 第二步:写普通的实现类
class UserServiceImpl implements UserService {
@Override
public void sayHello() {
System.out.println("你好,我是用户");
}
}

// 第三步:用代理在方法执行前后自动加日志
public class SimpleProxy implements InvocationHandler {
private Object target;

// 把要代理的对象传进来
public SimpleProxy(Object target) {
this.target = target;
}

@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
System.out.println("【方法前】打印日志");
Object result = method.invoke(target, args); // 调用原方法
System.out.println("【方法后】打印日志");
return result;
}

public static void main(String[] args) {
// 生成代理对象
UserService proxy = (UserService) Proxy.newProxyInstance(
UserService.class.getClassLoader(),
new Class[]{UserService.class},
new SimpleProxy(new UserServiceImpl())
);

// 调用代理的方法,自动带上前后日志
proxy.sayHello();
}
}

http://www.jsqmd.com/news/1373907/

相关文章:

  • 合肥靠谱的注册营业执照办理优选合肥管家王财务管理有限公司(合肥办事处) - 品牌优推
  • 5步掌握CS Demo Manager:专业级CS2/CSGO录像分析工具终极指南
  • 2026年8月重庆市永川区广电100M单宽带避坑全攻略 - 找卡家园
  • 面向公众终端的扫码前置校验机制研究 —— 基于日常场景二维码钓鱼风险防控实践
  • 群签名技术-数据确权模型分析
  • 失眠健忘总缠身?“脑肾”入手,健脑补肾口服液的调理指南
  • MATLAB科研绘图终极指南:如何用export_fig一键导出高质量图表
  • 客户拜访后录音待整理 2026什么软件可以录音转文字哪个好指南
  • Kubernetes 排障从哪拆:先看流量、调度还是依赖
  • 没驾照怎么玩新疆房车?我帮父母规划了一次带司机的行程 - 优企甄选
  • 中医师承考证全攻略,靠谱机构优选阿虎医考师承 - 资讯报道
  • 2026年景德镇旅行社口碑报告:方诚国旅98%用户推荐 - 陈姑娘33
  • 安卓虚拟摄像头终极指南:5分钟掌握摄像头画面自定义替换
  • 2026年8月长沙管道疏通避坑指南|本地正规门店实测收费与维修常识 - 超人防水
  • 2026年8月深圳市坪山区广电200M宽带怎么选一篇说透 - 找卡家园
  • 挑选壳型线铸造工艺生产厂家太纠结?内行人提醒务必关注这五个要点 - 官方资讯
  • 微众银行微业贷靠谱吗?持牌资质、费用透明与风控红线的全面拆解
  • Traymond:Windows桌面整理的终极解决方案,一键整理混乱窗口
  • 2026北京再婚家庭遗产房产分割律所选择、对比、避坑盘点 - 行业观察网
  • 2026年8月深圳市坪山区广电100M宽带怎么选 - 找卡家园
  • 2026年近期上海全铝橱柜实力企业盘点与核心选购指南 - 家居讯客
  • 2026成都旧房翻新实力整装企业10强盘点 正规合规高性价比服务商选型攻略+签约避坑全维度FAQ - 商业大观
  • 2026上海高新技术企业认定机构口碑评选** - 资讯报道
  • Codex修TypeScript报错为什么总想用any?用类型收窄避免“假修复”
  • 容器任务超时重试:怎样避免把故障扩散到集群
  • Steam挂刀行情站:24小时追踪四大平台饰品价格数据的完整指南
  • 《给第一次学模型的小白:时间序列预测全模型通俗演义》
  • Browser-Use:3分钟学会让AI成为你的网页自动化助手
  • 5分钟快速上手ComfyUI-LTXVideo:终极AI视频生成环境搭建指南
  • 【单片机课程设计/毕业设计】基于 STM32 的衣物识别环境联动晾衣架设计 基于 STM32 单片机声光报警智能晾衣设备开发(017202)