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全栈架构师
- 使用说明
- 1. Hello World
- 2. 变量与类型
- 3. 类型转换
- 4. 常量 final
- 5. 运算符
- 6. 字符串操作
- 7. 控制台输入
- 8. 格式化输出
- 9. if-else
- 10. switch 表达式
- 11. for 循环
- 12. while/do-while
- 13. break/continue/标签
- 14. 增强 for
- 15. 一维数组
- 16. 二维数组
- 17. Arrays 工具类
- 18. 方法与重载
- 19. 可变参数
- 20. 类与对象
- 21. 封装
- 22. 构造器与 this
- 23. static 成员与静态块
- 24. 继承与 super
- 25. 多态与重写
- 26. 抽象类
- 27. 接口(default/static)
- 28. 内部类与匿名类
- 29. 泛型类
- 30. 泛型方法与通配符(PECS)
- 31. 枚举
- 32. ArrayList/LinkedList
- 33. HashMap/LinkedHashMap/TreeMap
- 34. HashSet/LinkedHashSet/TreeSet
- 35. Queue/Deque
- 36. Comparable/Comparator
- 37. Stream 基本操作
- 38. Optional
- 39. Collectors 分组/分区
- 40. try-catch-finally & 多重捕获
- 41. 自定义异常
- 42. try-with-resources
- 43. NIO.2 文件读写
- 44. 对象序列化
- 45. 缓冲流
- 46. 目录遍历 Files.walk
- 47. 正则表达式
- 48. 命令行参数
- 49. 创建线程:Thread/Runnable
- 50. sleep/yield/join
- 51. synchronized 同步
- 52. volatile 可见性演示
- 53. 原子类 AtomicInteger
- 54. ReentrantLock
- 55. ReadWriteLock
- 56. Condition await/signal
- 57. ThreadLocal
- 58. BlockingQueue 生产者-消费者
- 59. CountDownLatch
- 60. CyclicBarrier
- 61. Semaphore
- 62. Phaser
- 63. ExecutorService 线程池
- 64. ScheduledExecutorService 定时任务
- 65. CompletableFuture
- 66. ForkJoinPool
- 进一步学习与架构思维
- 结束语
- 使用说明
使用说明
- 环境建议: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 的高级应用,如 分布式系统设计、微服务架构、以及 人工智能与大数据处理 等方向。让我们从基础到架构,再到性能优化和高可用设计,逐步提升您的技术能力。
如果您在学习过程中有任何问题,欢迎在评论区留言,或与我互动交流。不断实践,持续成长,未来的全栈架构师之路,已经向您敞开。让我们一起迎接下一个技术高峰!