Java进阶

1.高级特性

注解

Java框架重要组成部分。
注解本质是一个接口。
在我看来,Spring中注解和配置文件的作用是一样的,都是在代码运行时通过反射将配置信息加入类中,达到抽象代码的作用,注解在框架的兴起,还是因为配置文件的太多以至于"配置地狱”的出现,但注解的不直观性,使得在实际Web项目开发中往往注解和配置文件折中使用。

public @interface 注解名称{
    属性列表;
}

反射

正常来说执行Java代码的时候,类已经写好,等待执行就行。但反射可以让在代码运行时,再加入类的相关信息,Spring框架的配置文件就是通过反射来进行注入的。
所以:
反射就是在运行时才知道要操作的类是什么,并且可以在运行时获取类的完整构造,并调用对应的方法。

Java框架的基石。

具体可以看这篇文章

泛型

泛型的作用是简化代码,相当于语法糖。

java 中泛型标记符:

E - Element (在集合中使用,因为集合中存放的是元素)
T - TypeJava 类)
K - Key(键)
V - Value(值)
N - Number(数值类型)
? - 表示不确定的 java 类型
  • 泛型方法
public class GenericMethodTest {
    // 泛型方法 printArray                         
    public static <E> void printArray(E[] inputArray) {
        // 输出数组元素            
        for (E element : inputArray) {
            System.out.printf("%s ", element);
        }
        System.out.println();
    }

    public static void main(String args[]) {
        // 创建不同类型数组: Integer, Double 和 Character
        Integer[] intArray = {1, 2, 3, 4, 5};
        Double[] doubleArray = {1.1, 2.2, 3.3, 4.4};
        Character[] charArray = {'H', 'E', 'L', 'L', 'O'};

        System.out.println("整型数组元素为:");
        printArray(intArray); // 传递一个整型数组

        System.out.println("\n双精度型数组元素为:");
        printArray(doubleArray); // 传递一个双精度型数组

        System.out.println("\n字符型数组元素为:");
        printArray(charArray); // 传递一个字符型数组
    }
}

在这里插入图片描述

  • 泛型类
public class Box<T> {
   
  private T t;
 
  public void add(T t) {
    this.t = t;
  }
 
  public T get() {
    return t;
  }
 
  public static void main(String[] args) {
    Box<Integer> integerBox = new Box<Integer>();
    Box<String> stringBox = new Box<String>();
 
    integerBox.add(new Integer(10));
    stringBox.add(new String("菜鸟教程"));
 
    System.out.printf("整型值为 :%d\n\n", integerBox.get());
    System.out.printf("字符串为 :%s\n", stringBox.get());
  }
}

序列化

当两个进程在进行远程通信时,彼此可以发送各种类型的数据。无论是何种类型的数据,都会以二进制序列的形式在网络上传送。
发送方需要把这个Java对象转换为字节序列,才能在网络上传送;接收方则需要把字节序列再恢复为Java对象。

2.多线程

在这里插入图片描述

  1. 采用实现 Runnable、Callable 接口的方式创建多线程时,线程类只是实现了 Runnable 接口或 Callable 接口,还可以继承其他类。

  2. 使用继承 Thread 类的方式创建多线程时,编写简单,如果需要访问当前线程,则无需使用 Thread.currentThread() 方法,直接使用 this 即可获得当前线程。
    在这里插入图片描述

3.网络编程

4.JVM

在这里插入图片描述

5.版本特性

Lambda 表达式

Lambda表达式用来代替匿名类的
Lambda 其实就是匿名方法,这是一种把方法作为参数进行传递的编程思想。
Java会在背后,悄悄的,把这些都还原成匿名类方式。引入Lambda表达式,会使得代码更加紧凑,而不是各种接口和匿名类到处飞。

(parameters) -> expression
或
(parameters) ->{ statements; }

接口默认方法

响应式流(Reactive Streams) API

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java进阶学习路线通常包括以下几个阶段: 1. **基础知识**: - 学习基础语法:变量、数据类型、运算符、流程控制(如条件、循环)、数组、集合等。 - 熟悉面向对象编程(OOP)概念:类、对象、封装、继承、多态。 2. **中级技能**: - 掌握设计模式:单例、工厂、观察者、策略等,理解如何优化软件架构。 - 异常处理和IO流:异常处理机制,文件操作、网络通信等。 - 数据结构和算法:了解常用的数据结构(如栈、队列、链表、树、图),并能用Java实现基本算法。 3. **框架应用**: - Spring框架:深入学习Spring MVC和Spring Boot,理解依赖注入、AOP等高级特性。 - Hibernate或MyBatis:数据库访问层技术,ORM工具的学习和实践。 - 学习Java多线程和并发工具库(如synchronized、ExecutorService、Future、CompletableFuture)。 - 分布式系统原理:学习RPC(如RMI、Hessian、Thrift)和消息中间件(如JMS、RabbitMQ)。 5. **性能优化**: - 内存管理:垃圾回收机制,内存泄漏检测。 - 性能分析:使用JProfiler、VisualVM等工具进行性能监控和调优。 6. **实战项目**: - 实施一个大型企业级项目,涉及数据库设计、用户界面、业务逻辑等多个模块。 7. **持续学习**: - 阅读源码,如开源框架源码,提升编程能力。 - 关注新技术趋势,例如微服务、云计算、大数据处理等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值