首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java进阶学习路线图「建议收藏」

对象的多态性:子类和父类之间的转换、父类纸箱子类的引用、抽象类和接口在多态中的应 用、多态优点。常用设计模式如单利、模版等模式。...多线程应用 多线程的概念,如何在程序中创建多线程(Thread、Runnable),线程安全问题,线程的同步,线程之间的通讯、 死锁问题的剖析。...javaAPI详解 JavaAPI介绍、String和StringBuffer、各种基本数据类型包装类,System和Runtime类,Date和DateFomat类等。...SQL语句 数据库的创建,表的创建,修改,删除,查询,索引的创建,主从表的建立,数据控制授权和回收,事务控制,查询语句以及运算符的详解,sql中的函数使用。...触发器、存储过程 触发器和存储过程使用场合, 通过实例进行详解。 数据库设计优化 WHERE子句中的连接顺序,选择最有效率的表名顺序,SELECT子句中避免使用 ‘ * ‘ 计算记录条数等等。

94330

Java学习路线图分析

对象的多态性:子类和父类之间的转换、父类纸箱子类的引用、抽象类和接口在多态中的应用、多态优点。常用设计模式如单利、模版等模式。...多线程应用 多线程的概念,如何在程序中创建多线程(Thread、Runnable),线程安全问题,线程的同步,线程之间的通讯、死锁问题的剖析。...javaAPI详解 JavaAPI介绍、String和StringBuffer、各种基本数据类型包装类,System和Runtime类,Date和DateFomat类等。...SQL语句 数据库的创建,表的创建,修改,删除,查询,索引的创建,主从表的建立,数据控制授权和回收,事务控制,查询语句以及运算符的详解,sql中的函数使用。...触发器、存储过程 触发器和存储过程使用场合, 通过实例进行详解。 数据库设计优化 WHERE子句中的连接顺序,选择最有效率的表名顺序,SELECT子句中避免使用 ‘ * ‘ 计算记录条数等等。

1.4K101
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Java学习路线图分析

    对象的多态性:子类和父类之间的转换、父类纸箱子类的引用、抽象类和接口在多态中的应用、多态优点。常用设计模式如单利、模版等模式。...多线程应用 多线程的概念,如何在程序中创建多线程(Thread、Runnable),线程安全问题,线程的同步,线程之间的通讯、死锁问题的剖析。...javaAPI详解 JavaAPI介绍、String和StringBuffer、各种基本数据类型包装类,System和Runtime类,Date和DateFomat类等。...SQL语句 数据库的创建,表的创建,修改,删除,查询,索引的创建,主从表的建立,数据控制授权和回收,事务控制,查询语句以及运算符的详解,sql中的函数使用。...触发器、存储过程 触发器和存储过程使用场合, 通过实例进行详解。 数据库设计优化 WHERE子句中的连接顺序,选择最有效率的表名顺序,SELECT子句中避免使用 ‘ * ‘ 计算记录条数等等。

    1.2K30

    深入探讨:Spring与MyBatis中的连接池与缓存机制

    本文将深入探讨Spring和MyBatis中的连接池和缓存机制,从基本概念到高级应用,全面覆盖这两个框架中的性能优化技术。...1.1.1 连接池的基本原理 连接池通过预先创建一定数量的数据库连接并维护一个连接的池子,当应用程序需要访问数据库时,从池中借用连接,用完后再归还给池。这样减少了创建和关闭连接的开销。...Spring与MyBatis的集成,可以在Spring的配置文件中定义数据源,并通过MyBatis的配置文件使用这个数据源。...2.1.2 缓存的优点 提高性能:通过减少数据库访问次数,降低查询延迟。 减少数据库负载:降低数据库的并发访问压力。 提高响应速度:缓存的数据可以快速读取,提高应用的响应速度。...详细介绍如何在分布式微服务中实现分布式缓存,包括使用Redis和Spring Cloud的结合。

    29710

    Java后端学习流程

    对象的多态性:子类和父类之间的转换、父类指向子类的引用、抽象类和接口在多态中的应用、多态优点。常用设计模式如单利、模版等模式。...多线程应用多线程的概念,如何在程序中创建多线程(Thread、Runnable),线程安全问题,线程的同步,线程之间的通讯、死锁问题的剖析。...javaAPI详解JavaAPI介绍、String和StringBuffer、各种基本数据类型包装类,System和Runtime类,Date和DateFomat类等。...SQL语句数据库的创建,表的创建,修改,删除,查询,索引的创建,主从表的建立,数据控制授权和回收,事务控制,查询语句以及运算符的详解,sql中的函数使用。...缓存技术为什么使用缓存技术,oscache缓存技术的介绍和使用,memcached缓存技术的介绍和使用、两者缓存技术的比较和如何去使用。

    1.5K21

    Java进阶之路——从初级程序员到架构师,从小工到专家

    一: 编程基础 不管是C还是C++,不管是Java还是PHP,想成为一名合格的程序员,基本的数据结构和算法基础还是要有的。下面几篇文章从思想到实现,为你梳理出常用的数据结构和经典算法。 ...、Map的实现以及集成关系,实现原理 Collections和Arrays  2-3 其他JavaAPI String和StringBuffer,System和Runtime类,Date和DateFomat...Unchecked Exception,异常的捕捉和抛出,异常捕捉的原则,finally的使用 2-7 多线程 线程和进程的概念 如何在程序中创建多线程,线程安全问题,线程之间的通讯 线程的同步 死锁问题的剖析...3-1理论基础 数据库设计原则和范式 事务(ACID、工作原理、事务的隔离级别、锁、事务的传播机制) 3-2 各种数据库优缺点、使用场景分析 MySQL/SQLServer/Oracle以及各种NoSQL...,大表查询优化,多表连接查询优化,子查询优化等 3-4 分库、分表、备份、迁移 导入、导出,分库、分表,冷备热备,主从备份、双机热备、纵向扩展、横向扩展 3-5 JDBC JDBC Connection

    66830

    Java进阶之路——从初级程序员到架构师,从小工到专家

    # 一: 编程基础 不管是C还是C++,不管是Java还是PHP,想成为一名合格的程序员,基本的数据结构和算法基础还是要有的。下面几篇文章从思想到实现,为你梳理出常用的数据结构和经典算法。...、Map的实现以及集成关系,实现原理 Collections和Arrays 2-3 其他JavaAPI String和StringBuffer,System和Runtime类,Date和DateFomat...Unchecked Exception,异常的捕捉和抛出,异常捕捉的原则,finally的使用 2-7 多线程 线程和进程的概念 如何在程序中创建多线程,线程安全问题,线程之间的通讯 线程的同步 死锁问题的剖析...3-1理论基础 数据库设计原则和范式 事务(ACID、工作原理、事务的隔离级别、锁、事务的传播机制) 3-2 各种数据库优缺点、使用场景分析 MySQL/SQLServer/Oracle以及各种NoSQL...,大表查询优化,多表连接查询优化,子查询优化等 3-4 分库、分表、备份、迁移 导入、导出,分库、分表,冷备热备,主从备份、双机热备、纵向扩展、横向扩展 3-5 JDBC JDBC Connection

    2.6K11

    Java的特性

    (健壮)特点,其他都是) 3.Java自己操纵内存,从而减少内存出错的可能 4.Java实现了真数组,避免了覆盖数据的可能性 真数组: a.在内存中连续分配。...c.数组内存放的类型是确定的,唯一的 d.Python中的数组 内存不是连续的 Java的编译与运行: Java编译后产生的是字节码,在运行的时候将字节码转换成机器码。...Java的基础模块: 数据类型、接口、类、JDBC、IO 注:JDBC是一种用于执行SQL语句的JavaAPI(应用程序编程接口)....Java的高级模块: 多线程、集合、反射、泛型、注解、实用类( 多种多样的类库:如包装类) 网络编程(TCP、UDP)、XML 如何理解Java面向对象?...a.这是一种编程思想,能够帮助我们把复杂的问题简单化; b.实现角色的转变,从执行者变成了指挥者。

    37020

    Kafka 消费者旧版低级 API

    Kafka 消费者总共有 3 种 API,新版 API、旧版高级 API、旧版低级 API,新版 API 是在 kafka 0.9 版本后增加的,推荐使用新版 API,但由于旧版低级 API 可以对消息进行更加灵活的控制...旧版低级 API 处理以下场景更为方便: 消息重复消费 添加事务管理机制,保证 Exactly Once 消费指定分区或者指定分区的某些片段 使用旧版低级 API的步骤: 获取你要读取的topic的partition...的元数据信息 找到这个partition的leader节点,然后通过这个leader节点找到存有这个partition副本的节点 构造消费请求,获取数据并处理 手动管理偏移量 识别并处理分区leader...节点的改变 以下示例代码实现的功能是,指定主题和分区,从该分区的第一条记录开始读取数据,打印到控制台: package com.bonc.rdpe.kafka110.consumer; import...192.168.42.101,192.168.42.102,192.168.42.103"; // 连接超时时间:1min private static final int TIME_OUT = 60 * 1000; // 读取消息缓存区大小

    1.5K30

    从Java程序员到架构师,从工程师到技术专家,迷茫之路

    一: 编程基础 不管是C还是C++,不管是Java还是PHP,想成为一名合格的程序员,基本的数据结构和算法基础还是要有的。下面几篇文章从思想到实现,为你梳理出常用的数据结构和经典算法。...、图的广度优先搜索、拓扑排序、Dijkstra算法(单源最短路径)、霍夫曼编码、辗转相除法、最小生成树等 数据结构与算法 01 链表(上):轻松写出正确的链表算法,并实现LRU缓存淘汰算法 02 链表(...Unchecked Exception,异常的捕捉和抛出,异常捕捉的原则,finally的使用 2-7 多线程 线程和进程的概念 如何在程序中创建多线程,线程安全问题,线程之间的通讯 线程的同步 死锁问题的剖析...3-1理论基础 数据库设计原则和范式 事务(ACID、工作原理、事务的隔离级别、锁、事务的传播机制) 3-2 各种数据库优缺点、使用场景分析 MySQL/SQLServer/Oracle以及各种NoSQL...,大表查询优化,多表连接查询优化,子查询优化等 3-4 分库、分表、备份、迁移 导入、导出,分库、分表,冷备热备,主从备份、双机热备、纵向扩展、横向扩展 3-5 JDBC JDBC Connection

    85530

    一篇 JPA 总结

    JPA 如同 JDBC 一样,为 Java 应用程序使用 ORM 框架建立一个标准 ?...**@Temporal** 在 JavaAPI 中没有定义 Date 类型的精度,而在数据库中表示 Date 类型的数据类型有 Date,Time,TimeStamp 三种精度(日期,时间,两者兼具...remove():类似于 Hibernate 中 Session 的 delete 方法,但此方法只可删除持久化对象,而 hibernate 的方法可以删除游离对象(不在缓存中,但在数据库中可能有对象,...该对象有 id;缓存是指利用方法从数据库中获取到对象且将其初始化了,那么关闭 entityManager、提交事务后该对象依旧可使用) ?...JPQL 还支持二级缓存,order by 子句,group by 子句,聚合查询,having 子句,关联查询,子查询等,JPQL 还有大量函数,如字符串处理函数,算术函数和日期函数等功能,这里就不再一一列举

    5.6K20

    MySQL中流式查询使用

    一、前言 MySQL 是目前使用比较广泛的关系型数据库,而从数据库里面根据条件查询数据到内存的情况想必大家在日常项目实践中都有使用。...其实在 MySQL 中提供了流式查询,这允许把符合条件的数据一部分一部分的加载到内存,本 Chat 就来具体讲解如何在 MySQL中使用流式查询: 使用流式查询前,我们是如何在 MySQL 中进行查询数据的...mysql驱动接受到请求后会向MySQL服务器发起TCP请求,服务器端根据条件查询出匹配的数据,然后通过TCP链接发送到MySQL驱动 MySQL驱动内则会把符合条件的数据缓存到驱动内,等服务器返回了所有符合条件的数据后...三、JDBC编程中MySQL流式查询 mysql客户端流式查询不会一下子把服务器端所有数据缓存起来,而是一部分一部分的把服务器端返回的数据返回给应用程序层,所以可以有效避免OOM。...四、最后 上面我们讲解了JDBC中流式查询使用,那么如下在Mybatis中使用那? 如何在 Mybatis 中使用 MyBatisCursorItemReader 进行流式查询?

    1.5K20

    Redis-20Spring缓存机制整合Redis

    ---- Redis和数据库写 写操作要考虑数据一致的问题,尤其是那些重要的业务数据,所以首先应该考虑从数据库中读取最新的数据,然后对数据进行操作,最后把数据写入 Redis 缓存中....写入业务数据,先从数据库中读取最新数据,然后进行业务操作,更新业务数据到数据库后,再将数据刷新到 Redis 缓存中,这样就完成了一次写操作。...首先,从数据库中读取最新的数据,以规避缓存中的脏数据问题,执行了逻辑,修改了部分业务数据。然后,把这些数据保存到数据库里,最后,刷新这些数据到 Redis 中。...因为在缓存管理器中设置了超时时间为 10 分钟,所以如果10 分钟后再用相同的 id去调用 getRole 方法,它就会通过调用方法将数据从数据库中取回了。 这里可自行验证。...,也就是还可以从方法内读取到缓存服务器中的数据。

    53410

    Apache Kylin原理与架构

    cube缓存的查询,cube是通过预计算缓存在hbase中,这部分查询是可以再秒级甚至 毫秒级完成,而还有一些操作使用过查询原始数据(存储在hadoop上通过hive上查询),这部分查询的延迟比较高。...kylin通常从hive中读取数据源,使用mapreduce作为cube构建引擎(目前也支持spark 不过是beta版本),并把预计算结果保存在HBase中,对外暴露Restful API/JDBC...kylin模块架构图: 1 ):数据源Hadoop /Hive 上面也说到,kylin通常从hive中读取数据,使用mr进行预计算,kylin获取的表时星型结构的,也就是包括一张事实表和多张唯独表,如果遇到业务场景比较复杂...然后转换为逻辑执行计划 Routing :负责将解析Sql生成的执行计划转换成Cube缓存的查询,Cube是通过预计算缓存在HBase中,这部分是在秒级甚至毫秒级完成的 Metadata:Kylin中包含了大量的元数据信息...kylin的元数据信息和cube信息都存储在hbase中 cube build engine :这个是所有模块的基础,主要负责kylin预计算中创建cube,创建的过程首先通过hive读取原始数据,然后通过一些

    1.3K20

    Shiro学习系列教程二:从数据库中获取认证信息

    本讲主要内容: 1:shiro框架流程了解  2:用户名密码从数据库中读取后进行验证(在实际工作中一般使用这种)  第一节:shiro框架流程了解 首先,我们从外部来看Shiro吧,即从应用程序角度的来观察如何使用...SessionDAO,通过如JDBC写到数据库;比如想把Session放到Memcached中,可以实现自己的Memcached SessionDAO;另外SessionDAO中可以使用Cache进行缓存...,以提高性能;  CacheManager:缓存控制器,来管理如用户、角色、权限等的缓存的;因为这些数据基本上很少去改变,放到缓存中后可以提高访问的性能  Cryptography:密码模块,Shiro...Shiro从realm中获取验证的数据  Realm有很多种类,常见的jdbc realm,jndi realm,text realm  第三节:从mysql中读取到验证数据 3.1:创建数据库...3.2.2创建配置文件 创建jdbc.ini配置文件。  文件[main]  ? 声明使用的realm:  ? 声明使用的数据源datasource  ?

    2.1K10

    Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day20】—— MyBatis2

    语句的生成和查询缓存的维护 StatementHandler 封装了JDBC Statement操作,负责对JDBC statement 的操作,如设置参数、将Statement结果集转换成List集合...其执行原理为,使用OGNL从sql参数对象中计算表达式的值,根据表达式的值动态拼接sql,以此来完成动态sql的功能。...先说缓存,合理使用缓存是优化中最常见的,将从数据库中查询出来的数据放入缓存中,下次使用时不必从数据库查询,而是直接从缓存中读取,避免频繁操作数据库,减轻数据库的压力,同时提高系统性能。...不同的sqlSession之间的缓存数据区域是互相不影响的。也就是他只能作用在同一个sqlSession中,不同的sqlSession中的缓存是互相不能读取的。...一级缓存的工作原理: 与Redis同理,用户发起查询请求,查找某条数据,sqlSession先去缓存中查找,是否有该数据,如果有,直接返回;如果没有,从数据库中查询,并将查询到的数据放入一级缓存区域,

    95120

    Spring Cache-缓存概述及使用

    Spring从3.1开始,以一贯的优雅风格提供了一种透明的缓存解决方案,这使得Spring可以在后台使用不同的缓存框架(如EhCache,GemFire、HazelCast和Guava)时保持编程的一致...要理解缓存,我们先了解下基本概念 缓存命中率 即从缓存中读取数据的次数与总读取次数的比率。 一般来讲,命中率越高也好。...命中率 = 从缓存中读取的次数 / (总读取次数[从缓存中读取的次数+从慢速设备上读取的次数]) Miss率 = 没从缓存中读取的次数/ (总读取次数[从缓存中读取的次数+从慢速设备上读取的次数])...在Java中一般会对调用方法进行缓存控制,比如 findUserById(Sting id),先从缓存中查找有没有符合查询条件的数据,如果没有,则执行改方法从数据库中查找该用户,然后添加到缓存中,下次调用时将从缓存中获取...另外Spring Cache抽象的操作中没有锁的概念,当多线程并发操作(更新或者删除)同一个缓存项时,有可能读取到过期的数据。

    6.1K10

    TiDB 最佳实践系列(五)Java 数据库应用开发指南

    接下来将分别介绍使用各个组件时可能需要关注的问题。 JDBC Java 应用尽管可以选择在不同的框架中封装,但在最底层一般会通过调用 JDBC 来与数据库服务器进行交互。...在 JDBC 中通常有以下两种处理方式: 设置 FetchSize 为 Integer.MIN_VALUE 让客户端不缓存,客户端通过 StreamingResult 的方式从网络连接上流式读取执行结果...应用在使用连接池时需要注意连接使用完成后归还连接,推荐应用使用对应的连接池相关监控(如 metricRegistry),通过监控能及时定位连接池问题。 2....1.3 Streaming 结果 前面介绍了在 JDBC 中如何使用流式读取结果,除了 JDBC 相应的配置外,在 MyBatis 中如果希望读取超大结果集合也需要注意: 可以通过在 mapper 配置中对单独一条...总结 本文从常用 Java 数据库交互组件的角度,阐述了开发 Java 应用程序使用 TiDB 的常见问题与解决办法。

    2.3K30
    领券