66个JAVA常见代码大全:学完这篇从Java小白到AI全栈架构师

66个JAVA常见代码大全:学完这篇从Java小白到AI全栈架构师

66个JAVA常见代码大全:学完这篇从Java小白到AI全栈架构师

摘要:本文详细列举了 66 个 Java 编程中的关键代码示例,包括基础语法、数据类型、条件判断、循环、数组、方法、面向对象、继承、接口、抽象类、多态、封装、静态变量、内部类、匿名类、泛型、集合框架、异常处理、文件 I/O、多线程、同步以及高级并发概念,帮助你从入门到成长为架构师。

66个Java常见代码大全:学完这篇从Java小白到AI全栈架构师

引言

在当今的编程世界中,Java 作为一种广泛使用的编程语言,涵盖了从基础语法到复杂架构的方方面面。无论是刚接触编程的新手,还是经验丰富的开发者,掌握Java的核心技术和常用模式,都是成为一名高效开发者的必经之路。本篇文章将带您通过 66 个关键代码示例,从零开始深入学习 Java,从最基础的语法到高阶的并发编程,帮助您成为一名合格的 全栈开发者架构师

这篇文章不仅包含了 Java 编程语言 中的核心概念、常见技术栈,还为您详细解析了 面向对象编程(OOP)与 多线程并发 的实际应用技巧。无论是构建简单的应用程序,还是设计复杂的分布式系统,本文的示例代码将为您提供明确的指导,帮助您快速上手并实现功能。

66个JAVA常见代码大全:学完这篇从Java小白到AI全栈架构师

文章目录


使用说明

  • 环境建议:JDK 17(兼容 11+)、Gradle/Maven 均可。
  • 示例风格:每节给出 1 个小示例,
    • 简短解释 + 可运行/可复用的核心代码;
    • 为避免类名冲突,示例类名各不相同或仅展示片段;
    • 可将多个示例放入同一工程的 src/main/java 目录下单独运行。

如何运行

# 以单文件方式运行 javac Demo01.java &&java Demo01 

1. Hello World

publicclassDemo01{publicstaticvoidmain(String[] args){System.out.println("Hello, World!");}}

2. 变量与类型

publicclassDemo02{publicstaticvoidmain(String[] args){int age =18;double score =98.5;boolean ok =true;char c ='A';long big =9_223_372_036_854_775_807L;// 下划线增强可读性var msg ="Java";// JDK 10 局部类型推断System.out.printf("age=%d, score=%.1f, ok=%b, c=%c, msg=%s\n", age, score, ok, c, msg);}}

3. 类型转换

publicclassDemo03{publicstaticvoidmain(String[] args){int i =10;long l = i;// 自动提升double d = l;int j =(int) d;// 强转可能丢失精度System.out.println(j);}}

4. 常量 final

publicclassDemo04{publicstaticfinaldoublePI=3.141592653589793;publicstaticvoidmain(String[] args){System.out.println(PI);}}

5. 运算符

publicclassDemo05{publicstaticvoidmain(String[] args){int a =5, b =2;System.out.println(a / b);// 2 整除System.out.println(a /(double) b);// 2.5 浮点System.out.println(a++);// 5(先用后加)System.out.println(++a);// 7(先加后用)System.out.println(a &1);// 位运算判断奇偶}}

6. 字符串操作

publicclassDemo06{publicstaticvoidmain(String[] args){String s =" Java ";System.out.println(s.trim().toUpperCase().replace(" ",""));System.out.println(String.join(",","A","B","C"));}}

7. 控制台输入

importjava.util.*;publicclassDemo07{publicstaticvoidmain(String[] args){try(Scanner sc =newScanner(System.in)){System.out.print("请输入名字: ");String name = sc.nextLine();System.out.println("Hi, "+ name);}}}

8. 格式化输出

publicclassDemo08{publicstaticvoidmain(String[] args){System.out.printf("%-10s | %8.2f\n","Revenue",12345.678);}}

9. if-else

publicclassDemo09{publicstaticvoidmain(String[] args){int score =86;String level = score >=90?"A": score >=80?"B":"C";System.out.println(level);}}

10. switch 表达式

publicclassDemo10{publicstaticvoidmain(String[] args){String day ="MON";int num =switch(day){case"MON","TUE","WED","THU","FRI"->1;case"SAT","SUN"->2;default->0;};System.out.println(num);}}

11. for 循环

publicclassDemo11{publicstaticvoidmain(String[] args){int sum =0;for(int i =1; i <=100; i++) sum += i;System.out.println(sum);}}

12. while/do-while

publicclassDemo12{publicstaticvoidmain(String[] args){int n =3;do{System.out.println(n--);}while(n >0);}}

13. break/continue/标签

publicclassDemo13{publicstaticvoidmain(String[] args){ outer:for(int i =0; i <3; i++){for(int j =0; j <3; j++){if(i ==1&& j ==1)break outer;System.out.printf("(%d,%d) ", i, j);}}}}

14. 增强 for

importjava.util.*;publicclassDemo14{publicstaticvoidmain(String[] args){for(var x :List.of(1,2,3))System.out.println(x);}}

15. 一维数组

importjava.util.Arrays;publicclassDemo15{publicstaticvoidmain(String[] args){int[] arr ={3,1,2};Arrays.sort(arr);System.out.println(Arrays.toString(arr));}}

16. 二维数组

importjava.util.Arrays;publicclassDemo16{publicstaticvoidmain(String[] args){int[][] m ={{1,2},{3,4}};System.out.println(Arrays.deepToString(m));}}

17. Arrays 工具类

importjava.util.Arrays;publicclassDemo17{publicstaticvoidmain(String[] args){int[] a ={1,3,5,7};System.out.println(Arrays.binarySearch(a,5));int[] b =Arrays.copyOf(a,6);System.out.println(Arrays.toString(b));}}

18. 方法与重载

publicclassDemo18{staticintadd(int a,int b){return a+b;}staticdoubleadd(double a,double b){return a+b;}publicstaticvoidmain(String[] args){System.out.println(add(1,2));System.out.println(add(1.2,3.4));}}

19. 可变参数

publicclassDemo19{staticintsum(int... xs){int s=0;for(int x:xs) s+=x;return s;}publicstaticvoidmain(String[] a){System.out.println(sum(1,2,3,4));}}

20. 类与对象

classUser{String name;int age;}publicclassDemo20{publicstaticvoidmain(String[] args){User u=newUser(); u.name="Tom"; u.age=20;System.out.println(u.name+":"+u.age);}}

21. 封装

classAccount{privatedouble balance;publicdoublegetBalance(){return balance;}publicvoiddeposit(double amt){if(amt<=0)thrownewIllegalArgumentException(); balance+=amt;}}

22. 构造器与 this

classPoint{int x,y;Point(){this(0,0);}Point(int x,int y){this.x=x;this.y=y;}}

23. static 成员与静态块

classIdGen{staticlong next=1;static{System.out.println("class loaded");}staticsynchronizedlongnextId(){return next++;}}

24. 继承与 super

classAnimal{voidsay(){System.out.println("...");}}classDogextendsAnimal{@Overridevoidsay(){super.say();System.out.println("wang");}}

25. 多态与重写

classShape{doublearea(){return0;}}classCircleextendsShape{double r;Circle(double r){this.r=r;}@Overridedoublearea(){returnMath.PI*r*r;}}classSquareextendsShape{double a;Square(double a){this.a=a;}@Overridedoublearea(){return a*a;}}

26. 抽象类

abstractclassTransport{abstractvoidmove();}classCarextendsTransport{voidmove(){System.out.println("Car go");}}

27. 接口(default/static)

interfaceLogger{voidinfo(String msg);defaultvoidwarn(String msg){System.out.println("WARN "+msg);}staticLoggernop(){return m->{};}}

28. 内部类与匿名类

classOuter{privateint v=42;classInner{intget(){return v;}}// 成员内部类}classUseAnon{staticRunnable r =newRunnable(){publicvoidrun(){System.out.println("anon run");}};}

29. 泛型类

classBox<T>{privateT v;publicvoidset(T v){this.v=v;}publicTget(){return v;}}

30. 泛型方法与通配符(PECS)

importjava.util.*;classG{static<T>voidcopy(List<?superT> dst,List<?extendsT> src){ dst.addAll(src);}// Producer Extends, Consumer Super}

31. 枚举

enumRole{ADMIN,USER,GUEST}

32. ArrayList/LinkedList

importjava.util.*;publicclassDemo32{publicstaticvoidmain(String[] a){List<Integer> arr =newArrayList<>(); arr.add(1); arr.add(2);Deque<Integer> link =newLinkedList<>(); link.addFirst(3); link.addLast(4);System.out.println(arr+" | "+link);}}

33. HashMap/LinkedHashMap/TreeMap

importjava.util.*;publicclassDemo33{publicstaticvoidmain(String[] a){Map<String,Integer> m1=newHashMap<>(); m1.put("b",2); m1.put("a",1);Map<String,Integer> m2=newLinkedHashMap<>(); m2.put("b",2); m2.put("a",1);Map<String,Integer> m3=newTreeMap<>(); m3.put("b",2); m3.put("a",1);System.out.println(m1.keySet());System.out.println(m2.keySet());System.out.println(m3.keySet());}}

34. HashSet/LinkedHashSet/TreeSet

importjava.util.*;publicclassDemo34{publicstaticvoidmain(String[] a){System.out.println(newHashSet<>(List.of(3,1,2)));// 无序System.out.println(newLinkedHashSet<>(List.of(3,1,2)));// 插入序System.out.println(newTreeSet<>(List.of(3,1,2)));// 自然序}}

35. Queue/Deque

importjava.util.*;publicclassDemo35{publicstaticvoidmain(String[] a){Queue<Integer> q =newArrayDeque<>(); q.offer(1); q.offer(2);System.out.println(q.poll());Deque<Integer> d =newArrayDeque<>(); d.addFirst(1); d.addLast(2);System.out.println(d.removeLast());}}

36. Comparable/Comparator

importjava.util.*;classPersonimplementsComparable<Person>{String n;int a;Person(String n,int a){this.n=n;this.a=a;}publicintcompareTo(Person o){returnInteger.compare(a,o.a);}publicStringtoString(){return n+":"+a;}}publicclassDemo36{publicstaticvoidmain(String[] a){List<Person> list =newArrayList<>(List.of(newPerson("A",30),newPerson("B",20))); list.sort(Comparator.comparing(p->p.n));// 使用 ComparatorSystem.out.println(list);}}

37. Stream 基本操作

importjava.util.*;importjava.util.stream.*;publicclassDemo37{publicstaticvoidmain(String[] a){var r =IntStream.rangeClosed(1,10).filter(x->x%2==0).map(x->x*x).boxed().toList();System.out.println(r);}}

38. Optional

importjava.util.*;publicclassDemo38{staticOptional<String>find(boolean ok){return ok?Optional.of("ok"):Optional.empty();}publicstaticvoidmain(String[] a){System.out.println(find(true).orElse("N/A"));}}

39. Collectors 分组/分区

importjava.util.*;importjava.util.stream.*;publicclassDemo39{publicstaticvoidmain(String[] a){recordP(String n,int a){}var ps =List.of(newP("A",18),newP("B",20),newP("C",20));var byAge = ps.stream().collect(Collectors.groupingBy(P::a));var part = ps.stream().collect(Collectors.partitioningBy(p->p.a>=20));System.out.println(byAge);System.out.println(part);}}

40. try-catch-finally & 多重捕获

publicclassDemo40{publicstaticvoidmain(String[] args){try{Integer.parseInt("x");}catch(NumberFormatException|NullPointerException e){System.out.println("bad number");}finally{System.out.println("done");}}}

41. 自定义异常

classBizExceptionextendsRuntimeException{BizException(String m){super(m);}}

42. try-with-resources

importjava.io.*;publicclassDemo42{publicstaticvoidmain(String[] args)throwsException{try(var in =newByteArrayInputStream("hi".getBytes());var out =newByteArrayOutputStream()){ out.write(in.readAllBytes());System.out.println(out);}}}

43. NIO.2 文件读写

importjava.nio.file.*;importjava.nio.charset.StandardCharsets;importjava.io.IOException;publicclassDemo43{publicstaticvoidmain(String[] args)throwsIOException{Path p =Path.of("/tmp/demo.txt");Files.writeString(p,"hello",StandardCharsets.UTF_8);System.out.println(Files.readString(p));}}

44. 对象序列化

importjava.io.*;classBookimplementsSerializable{String name;Book(String n){name=n;}}publicclassDemo44{publicstaticvoidmain(String[] args)throwsException{var f =newFile("/tmp/book.bin");try(var o =newObjectOutputStream(newFileOutputStream(f))){ o.writeObject(newBook("Java"));}try(var i =newObjectInputStream(newFileInputStream(f))){System.out.println(((Book)i.readObject()).name);}}}

45. 缓冲流

importjava.io.*;publicclassDemo45{publicstaticvoidmain(String[] args)throwsException{try(var in =newBufferedInputStream(newFileInputStream("/etc/hosts"))){byte[] buf = in.readAllBytes();System.out.println(buf.length);}}}

46. 目录遍历 Files.walk

importjava.nio.file.*;importjava.io.IOException;publicclassDemo46{publicstaticvoidmain(String[] a)throwsIOException{try(var s =Files.walk(Path.of("."),1)){ s.forEach(System.out::println);}}}

47. 正则表达式

importjava.util.regex.*;publicclassDemo47{publicstaticvoidmain(String[] a){var m =Pattern.compile("(\\w+)@(\\w+\\.\\w+)").matcher("hi [email protected]");if(m.find())System.out.println(m.group(1)+"@"+m.group(2));}}

48. 命令行参数

publicclassDemo48{publicstaticvoidmain(String[] args){for(String s:args)System.out.println(s);}}

49. 创建线程:Thread/Runnable

publicclassDemo49{publicstaticvoidmain(String[] a){newThread(()->System.out.println("hi from "+Thread.currentThread().getName())).start();}}

50. sleep/yield/join

publicclassDemo50{publicstaticvoidmain(String[] a)throwsInterruptedException{Thread t =newThread(()->{try{Thread.sleep(100);}catch(InterruptedException ignored){}}); t.start(); t.join();System.out.println("joined");}}

51. synchronized 同步

classCounter{privateint c;publicsynchronizedvoidinc(){ c++;}publicsynchronizedintget(){return c;}}

52. volatile 可见性演示

publicclassDemo52{staticvolatileboolean running =true;// 保证线程间可见publicstaticvoidmain(String[] a)throwsException{var t =newThread(()->{while(running){}}); t.start();Thread.sleep(10); running =false; t.join();System.out.println("stop");}}

53. 原子类 AtomicInteger

importjava.util.concurrent.atomic.*;classCnt{AtomicInteger n =newAtomicInteger();voidinc(){ n.incrementAndGet();}}

54. ReentrantLock

importjava.util.concurrent.locks.*;classSafeBox{privateint v;privatefinalLock lock=newReentrantLock();voidset(int x){ lock.lock();try{ v=x;}finally{ lock.unlock();}}intget(){ lock.lock();try{return v;}finally{ lock.unlock();}}}

55. ReadWriteLock

importjava.util.concurrent.locks.*;classCacheRW{privateint v;privatefinalReadWriteLock rw =newReentrantReadWriteLock();intget(){ rw.readLock().lock();try{return v;}finally{ rw.readLock().unlock();}}voidset(int x){ rw.writeLock().lock();try{ v=x;}finally{ rw.writeLock().unlock();}}}

56. Condition await/signal

importjava.util.concurrent.locks.*;classWaiter{finalLock lock=newReentrantLock();finalCondition ready=lock.newCondition();boolean ok=false;voidwaitIt()throwsInterruptedException{ lock.lock();try{while(!ok) ready.await();}finally{ lock.unlock();}}voidfire(){ lock.lock();try{ ok=true; ready.signalAll();}finally{ lock.unlock();}}}

57. ThreadLocal

publicclassDemo57{staticThreadLocal<String> ctx =ThreadLocal.withInitial(()->"guest");}

58. BlockingQueue 生产者-消费者

importjava.util.concurrent.*;publicclassDemo58{publicstaticvoidmain(String[] a)throwsException{BlockingQueue<Integer> q =newLinkedBlockingQueue<>(2);newThread(()->{try{for(int i=1;i<=3;i++){ q.put(i);} q.put(-1);}catch(InterruptedException ignored){}}).start();newThread(()->{try{for(;;){int x=q.take();if(x==-1)break;System.out.println("consume "+x);}}catch(InterruptedException ignored){}}).start();}}

59. CountDownLatch

importjava.util.concurrent.*;publicclassDemo59{publicstaticvoidmain(String[] a)throwsException{var latch=newCountDownLatch(3);for(int i=0;i<3;i++)newThread(()->{ latch.countDown();}).start(); latch.await();System.out.println("all done");}}

60. CyclicBarrier

importjava.util.concurrent.*;publicclassDemo60{publicstaticvoidmain(String[] a){var barrier=newCyclicBarrier(3,()->System.out.println("go!"));for(int i=0;i<3;i++)newThread(()->{try{ barrier.await();}catch(Exception ignored){}}).start();}}

61. Semaphore

importjava.util.concurrent.*;publicclassDemo61{publicstaticvoidmain(String[] a){var sem =newSemaphore(2);for(int i=0;i<5;i++)newThread(()->{try{ sem.acquire();System.out.println("in");Thread.sleep(50);}catch(Exception ignored){}finally{ sem.release();}}).start();}}

62. Phaser

importjava.util.concurrent.*;publicclassDemo62{publicstaticvoidmain(String[] a){Phaser p =newPhaser(3);for(int i=0;i<3;i++)newThread(()->{ p.arriveAndAwaitAdvance();System.out.println("phase1"); p.arriveAndDeregister();}).start();}}

63. ExecutorService 线程池

importjava.util.concurrent.*;publicclassDemo63{publicstaticvoidmain(String[] a)throwsException{ExecutorService pool =Executors.newFixedThreadPool(4);Future<Integer> f = pool.submit(()->42);System.out.println(f.get()); pool.shutdown();}}

64. ScheduledExecutorService 定时任务

importjava.util.concurrent.*;publicclassDemo64{publicstaticvoidmain(String[] a){var sch =Executors.newScheduledThreadPool(1); sch.scheduleAtFixedRate(()->System.out.println("tick"),0,1,TimeUnit.SECONDS);}}
提示:示例 64 会持续打印,可在演示时添加退出条件或手动停止进程。

65. CompletableFuture

importjava.util.concurrent.*;publicclassDemo65{publicstaticvoidmain(String[] a)throwsException{var f =CompletableFuture.supplyAsync(()->21).thenApply(x -> x *2);System.out.println(f.get());}}

66. ForkJoinPool

importjava.util.concurrent.*;importjava.util.*;publicclassDemo66{staticclassSumextendsRecursiveTask<Long>{finalint[] arr;finalint lo, hi;staticfinalintTH=1_000;Sum(int[] arr,int lo,int hi){this.arr=arr;this.lo=lo;this.hi=hi;}protectedLongcompute(){if(hi-lo<=TH){long s=0;for(int i=lo;i<hi;i++) s+=arr[i];return s;}int mid=(lo+hi)/2;var left=newSum(arr,lo,mid);var right=newSum(arr,mid,hi); left.fork();long r=right.compute();return left.join()+r;}}publicstaticvoidmain(String[] a){int[] data=newRandom().ints(1_000_000,1,10).toArray();long s =ForkJoinPool.commonPool().invoke(newSum(data,0,data.length));System.out.println(s);}}

进一步学习与架构思维

  • 从“写得通”到“写得稳”:单元测试、异常边界、不可变对象(record / Collections.unmodifiable*)。
  • 从单体到分布式:理解并发原语到线程池隔离,进而到服务化(超时、重试、熔断、限流)的设计理念。
  • 数据与 AI 接口:HTTP 客户端(Java 11+ HttpClient)、JSON 编解码(选择 Jackson/Gson 等库)、向量数据库/消息队列客户端的异步调用,落地到 CompletableFuture 组合编排。
  • 性能与可观测:JFR(Java Flight Recorder)、JIT/GC 基础、指标与日志链路。

基础语法面向对象编程集合与流文件 I/O并发与线程现代并发与编排Web/AI/数据组件全栈/架构Java基本数据类型控制结构类与对象继承与多态抽象类与接口集合框架Stream API文件读取与写入路径与文件操作线程基础同步与锁线程池异步编程Web开发基础AI与机器学习数据分析与处理

结束语

通过本文的详细讲解和丰富示例,我们已经涵盖了 Java 编程中的 66 个关键技术点,并为您提供了从基础到进阶的学习路径。从 基本语法多线程,每个概念都为您奠定了坚实的基础。通过实际代码示例和常见模式的掌握,您将能够轻松应对复杂项目和架构设计。

然而,技术的学习是一个持续的过程。希望本文能够成为您的学习指南,带领您迈向更加专业的编程生涯。接下来,您可以进一步探索 Java 的高级应用,如 分布式系统设计微服务架构、以及 人工智能与大数据处理 等方向。让我们从基础到架构,再到性能优化和高可用设计,逐步提升您的技术能力。

如果您在学习过程中有任何问题,欢迎在评论区留言,或与我互动交流。不断实践,持续成长,未来的全栈架构师之路,已经向您敞开。让我们一起迎接下一个技术高峰!


Read more

超酷!前端人必备的 3 个 Skills:搞定高级 UI,拿捏最佳实践,最后一个直接拉满“续航”!

最近和几位前端开发者聊天,发现一个有趣的现象:AI 写代码越来越快,但代码质量的差距反而越来越大。 有人用 Cursor 写出来的页面,一眼就能看出是 AI 生成的——紫色渐变背景、Inter 字体、千篇一律的卡片布局。而有的人用同样的工具,却能产出让人眼前一亮的作品。 差距在哪里?不在 AI 工具本身,而在于你给 AI 注入了什么样的"技能包" 。 今天想分享前端开发必备的三个 Skills。前两个是干货分享,能立刻提升你的代码质量;第三个可能出乎你的意料,但确实是我最近的真实体会。 Skill 1: 让 AI 懂设计,告别"AI 味"的界面 你有没有遇到过这种情况——AI 生成的页面虽然能用,但总觉得哪里不对劲? 布局平庸、配色单调、

By Ne0inhk

WebPShop:Photoshop完整支持WebP格式的全面解决方案

WebPShop:Photoshop完整支持WebP格式的全面解决方案 【免费下载链接】WebPShopPhotoshop plug-in for opening and saving WebP images 项目地址: https://gitcode.com/gh_mirrors/we/WebPShop WebPShop是一款专为Photoshop设计的开源插件,解决了Photoshop对WebP图像格式的兼容性问题。通过这个插件,设计师可以轻松打开、编辑和保存WebP格式图像,无论是静态图片还是动态动画,都能获得原生级别的支持。 快速配置指南 Windows系统安装步骤 1. 进入项目目录下的win文件夹 2. 双击打开WebPShop.sln解决方案文件 3. 在Visual Studio中选择x64架构进行构建 4. 将生成的插件文件复制到Photoshop插件目录即可使用 macOS系统安装指南 1. 打开项目中的mac文件夹 2. 使用Xcode打开webpshop.xcodeproj项目文件 3. 编译生成插件并安装到系统插件目录 核心功

By Ne0inhk

题解:2020-网鼎杯-青年组-Web-AreUSerialz

一、涉及知识点 序列化 serialize():将⼀个变量的数据转换为字符串。 反序列化 unserialize():将序列化后的字符串还原。 魔术方法 __destruct(析构函数):是 PHP 内置的魔术方法,核心作用是释放资源。 魔术方法 __wakeup:是 PHP 内置的魔术方法,当使用unserialize() 函数反序列化一个对象时,PHP 会自动调用该对象所属类的__wakeup方法。核心作用是:初始化反序列化对象资源,即恢复反序列化对象的状态。 二、真题解析步骤 最终目的:获得flag 1、获取源码 第一步:访问目标网站 第二步:前台界面(防御级别高,F12调试一下,不是重点) 第三步:7kscan扫描出 后台页面/子域名页面(更容易破解,重点关注) 第四步:访问后台页面/

By Ne0inhk
Ubuntu 搭建前端环境&Vue实战

Ubuntu 搭建前端环境&Vue实战

文章目录 * 前言 * 1. 系统更新和基础依赖 * 2. 安装 nvm (Node Version Manager) * 方法一:使用官方脚本安装(推荐) * 方法二:手动安装 * 激活 nvm * 3. 使用 nvm 安装和管理 Node.js * 4. 安装 pnpm * 方法一:使用 npm 安装(推荐) * 方法二:使用独立脚本安装 * 配置 pnpm * 5. 安装 Vue 开发环境 * 安装 Vue CLI(传统方式) * 使用 create-vue(Vue 官方推荐) * 6. 用 vite

By Ne0inhk