12 2020 档案

摘要:几乎所有的程序员都知道:现代操作系统进行资源分配的最小单元是进程,而操作系统进行运算调度的最小单元是线程。 现在的计算机动辄就是多处理器核心的,而每一个线程同一时间只能运行在一个处理器上,那么如果程序采用单线程进行开发,这样就不能充分利用多核处理器带来的优势。 所以为了充分利用多核处理器的资源来提高 阅读全文
posted @ 2020-12-31 12:44 田维常TWC 阅读(680) 评论(0) 推荐(0)
摘要:设计模式,即Design Patterns,是指在软件设计中,被反复使用的一种代码设计经验。 使用设计模式的目的是为了可重用代码,提高代码的可扩展性和可维护性。 设计模式这个术语是上个世纪90年代由Erich Gamma、Richard Helm、Raplh Johnson和Jonhn Vlissi 阅读全文
posted @ 2020-12-30 19:21 田维常TWC 阅读(170) 评论(0) 推荐(0)
摘要:关注“Java后端技术全栈” 回复“面试”获取全套面试资料 字数:2434,阅读耗时:3分40秒。 老规矩,先上案例代码,这样大家可以更加熟悉是如何使用的,看过Mybatis系列的小伙伴,对这段代码差不多都可以背下来了。 哈哈~,有点夸张吗?不夸张的,就这行代码。 public class Myba 阅读全文
posted @ 2020-12-30 19:20 田维常TWC 阅读(318) 评论(0) 推荐(0)
摘要:并发在现在已经是十分常见的问题了,由于人类信息量的增加,很多信息都需要并发处理,原有的串行处理已经很难满足现实的需求。 当今主流语言都竞相支持不同的并发模型,例如CSP模型、数据并行、函数式编程和Clojure的unified succession model。 基于锁和线程的并发模型是目前最常用的 阅读全文
posted @ 2020-12-27 18:59 田维常TWC 阅读(162) 评论(0) 推荐(0)
摘要:框架是和架构比较相似的概念,而且两者有着较强的关联关系,所以在实际工作中,很多时候这两个概念并不是分得那么清晰,参考维基百科,框架的定义如下: 软件框架(Software Framework) 通常指的是为了实现某个业界标准或者完成特定基本任务的软件组件规范,也指为了实现某某个软件组件规范时,提供规 阅读全文
posted @ 2020-12-27 18:57 田维常TWC 阅读(603) 评论(0) 推荐(0)
摘要:京东的技术在业界也是公认的牛逼的 而京东可以高速发展到今天的规模的原因,其中最核心的是坚持“倒三角”战略: 建立出色的团队; 打造财务、物流和技术三大核心系统; 降低成本、提升效率,为用户带来最佳体验。 2003年,从外部购买了一套ASP在线商城软件,并在此基础上逐步开发维护,形成了第一代网站“京东 阅读全文
posted @ 2020-12-26 17:37 田维常TWC 阅读(352) 评论(0) 推荐(0)
摘要:背景 前两天一个小伙伴面试的时候,被问JDBC底层是如何连接数据库的? 他顿时一脸懵逼,因为大部分人只知道JDBC的几个步骤,至于底层到底是怎么连接数据库的,还真不知道。 由于小伙伴是面试高级开发,问这种问题倒也不能说面试官过分,如果是初级或者中级,那问着问题就确实有些过分了。 但是如果你在初级或者 阅读全文
posted @ 2020-12-26 17:19 田维常TWC 阅读(124) 评论(0) 推荐(0)
摘要:1.JDBC有几个步骤? JDBC大致可以分为六个步骤: 加载驱动程序 获得数据库连接 创建一个Statement对象 操作数据库,实现增删改查 获取结果集 关闭资源 2.什么是Mybatis? 如果在面试的时候被问到,只要你说出下面三种即可: ❝ MyBatis 是一款优秀的持久层框架,它支持自定 阅读全文
posted @ 2020-12-25 13:15 田维常TWC 阅读(1546) 评论(0) 推荐(0)
摘要:规划是人类智慧的结晶,规划问题也是广泛地出现在人们的日常工作和生活中。 例如,以前小学课文中学过的田忌赛马,就是一个非常古老的规划问题。还有孙子兵法等等。 甚至,还有些成语也和规划有关,例如“运筹帷幄”、“事半功倍”等。 这些典故和成语处处闪耀着规划的光辉。 虽然规划是一个古老的问题,但是现代科学的 阅读全文
posted @ 2020-12-25 12:49 田维常TWC 阅读(366) 评论(0) 推荐(0)
摘要:在Web应用程序体系架构中,数据持久层(通常是一个关系数据库)是关键的核心部分,它对系统的性能有非常重要的影响。 MySQL是目前使用最多的开源数据库,但是MySQL数据库的默认设置性能非常的差,仅仅是一个玩具数据库。因此在产品中使用MySQL数据库必须进行必要的优化。 优化是一个复杂的任务,包括M 阅读全文
posted @ 2020-12-24 13:07 田维常TWC 阅读(276) 评论(0) 推荐(0)
摘要:在项目中,我们基本上都会有个StringUtils工具类,用来处理字符串相关的操作,比如:判空,长度,脱敏等。 今天有个小伙伴,因为调用别人提供的接口,接口里返回参数中有个String类型的。 小伙伴判空使用的是isEmpty()方法(大多数人认为这个方式没问题)。 但是问题来了: 接口返回的Str 阅读全文
posted @ 2020-12-24 13:05 田维常TWC 阅读(1922) 评论(0) 推荐(0)
摘要:用java语言进行开发的人越来越多了,大量程序员正在涌入java编程领域。 在这其中,就有很多“快餐式培训”人员。他们没有什么编程基础,会一点数据库和SQL语句,花上一个多月就学会编写JSP页面,然后靠着这样的技能去找java开发相关的工作。 这样的情形下,他们大多还能满足较为简单、重复式的开发,但 阅读全文
posted @ 2020-12-23 13:16 田维常TWC 阅读(134) 评论(0) 推荐(0)
摘要:1.什么是JVM? JVM 的全称是 「Java Virtual Machine」,也就是我们耳熟能详的 Java 虚拟机。它能识别 .class后缀的文件,并且能够解析它的指令,最终调用操作系统上的函数,完成我们想要的操作。 C++开发出来的程序,编译成二进制文件后,就可以直接执行了,操作系统是能 阅读全文
posted @ 2020-12-23 13:15 田维常TWC 阅读(319) 评论(0) 推荐(0)
摘要:Spring Cloud是一系列框架的有序集合。 微服务是可以独立部署、水平扩展、独立访问(或者有独立的数据库)的服务单元。 Spring Cloud就是这些微服务的大管家,采用了微服务这种架构之后,项目的数量会非常多,Spring Cloud做为大管家就需要提供各种方案来维护整个生态。 Sprin 阅读全文
posted @ 2020-12-22 13:07 田维常TWC 阅读(148) 评论(0) 推荐(0)
摘要:当下,注解非常流行,以前很长篇的代码,现在基本上一个注解就能搞定。 那,在Mybatis中又有哪些注解呢? Mybatis中的注解基本上都在org.apache.ibatis.annotations目录下: @MapperScan 该注解存在着争议,但不可否认的是这个注解确实是Mybatis的注解, 阅读全文
posted @ 2020-12-22 13:02 田维常TWC 阅读(1300) 评论(0) 推荐(0)
摘要:废话少说,直接开整: 第1组:JDK、JRE、JVM的关系 JDK中包含JRE,也包括JDK,而JRE也包括JDK。 范围关系:JDK>JRE>JVM。 具体见下图: 第2组:.java文件与.class文件的关系 这两者的关系需要两张图才能说明白: 第3组:class文件与JVM的关系 JVM通过 阅读全文
posted @ 2020-12-21 13:11 田维常TWC 阅读(72) 评论(0) 推荐(0)
摘要:为什么要编写并发程序? 想要充分发挥多处理器系统的强大计算能力,最简单的方式就是使用线程。随着处理器数量的持续增长,如何高效地使用并发正变得越来越重要! Java并发编程无处不在,服务器、数据库、应用,Java并发是永远不可跳过的坎。 想要深入学习java,就必须要掌握并发编程,尤其是在进行大数据、 阅读全文
posted @ 2020-12-20 16:41 田维常TWC 阅读(460) 评论(0) 推荐(0)
摘要:在 Web 应用中,缓存是必不可少的组件。通常我们都会用 Redis 或 memcached 等缓存中间件,拦截大量奔向数据库的请求,减轻数据库压力。作为一个重要的组件,MyBatis 自然也在内部提供了相应的支持。通过在框架层面增加缓存功能,可减轻数据库的压力,同时又可以提升查询速度,可谓一举两得 阅读全文
posted @ 2020-12-19 19:12 田维常TWC 阅读(108) 评论(0) 推荐(0)
摘要:什么是O2O? O2O的概念最早由TrialPay的CEO和创始人Alex Rampell提出,2010年8月7日,他在文章《Why Online 2 Offline Commerce Is A Trillion Dollar Opportunity》中提出O2O的概念。 此后,2010年10月31 阅读全文
posted @ 2020-12-18 12:57 田维常TWC 阅读(108) 评论(0) 推荐(0)
摘要:上次发文说到了如何集成分页插件,今天我们接着来聊mybatis插件的原理。 插件原理分析 mybatis插件涉及到的几个类: 我将以 Executor 为例,分析 MyBatis 是如何为 Executor 实例植入插件的。Executor 实例是在开启 SqlSession 时被创建的,因此,我们 阅读全文
posted @ 2020-12-18 12:56 田维常TWC 阅读(335) 评论(0) 推荐(0)
摘要:什么是TensorFlow? TensorFlow是谷歌2015年开源的主流深度学习框架,目前已在谷歌、优步(Uber)、京东、小米等科技公司广泛应用。 在现在人工智能火爆的情况下,想掌握好深度学习,不仅需要较强的理论功底,还需要足够的实践和解析。在这其中,TensorFlow的库就非常丰富。 最近 阅读全文
posted @ 2020-12-17 13:08 田维常TWC 阅读(478) 评论(0) 推荐(0)
摘要:本文主要内容: 大多数框架都支持插件,用户可通过编写插件来自行扩展功能,Mybatis也不例外。 在Mybatis中最出名的就是PageHelper 分页插件,下面我们先来使用一下这个分页插件。 如何集成分页插件 Spring-Boot+Mybatis+PageHelper 。 引入pom依赖 <d 阅读全文
posted @ 2020-12-17 13:06 田维常TWC 阅读(179) 评论(0) 推荐(0)
摘要:学习大数据,你需要掌握多少种算法? 机器学习算法,有数百种算法: Naive Bayes(朴素贝叶斯) Linear Regression(线性回归) Logistic Regression(逻辑回归) K-Means clustering(k均值聚类算法) Decision Trees(决策树) 阅读全文
posted @ 2020-12-16 13:17 田维常TWC 阅读(529) 评论(0) 推荐(0)
摘要:背景 前段时间在我的技术群里,大家讨论起了为什么UserMapper.java是个接口,没有具体实现类,而我们可以直接调用其方法? 关于这个问题,我之前面试过一些人,很多人是这么回答的: 1.我领导叫我们使用Mybatis,大家都这么用就这么用了(没想过,反正就这么用)。 2.虽然我不知道具体是怎么 阅读全文
posted @ 2020-12-16 13:15 田维常TWC 阅读(146) 评论(0) 推荐(0)
摘要:网站性能优化是一个很综合的话题,涉及到服务器的配置和网站前后端程序等各个方面。 雅虎最近将内部使用的性能测试工具yslow向第三方公开,并发布了著名的网站性能优化的十三条规则,其中有些特别有价值,在此列举一下: 对于第一次访问您网站,尚未在浏览器cache中缓存您网站内容的用户,我们可以做的事情包括 阅读全文
posted @ 2020-12-15 13:07 田维常TWC 阅读(345) 评论(0) 推荐(0)
摘要:在以前文章中,我们把Mybatis源码阅读的整个流程梳理了一遍。今天,我们来详细聊聊,Mybatis是如何解析配置文件的。 这是今天分析的流程图: 还是从案例开始。 demo案例 public static void main(String[] args) { String resource = " 阅读全文
posted @ 2020-12-15 13:05 田维常TWC 阅读(153) 评论(0) 推荐(0)
摘要:背景 最近,听到很多吐槽:看到源码,心中就感到十分纠结、特别烦恼。 为什么纠结? 因为面试的时候,面试官很喜欢问:你看过什么框架源码?JDK源码也行。 这时候,如果回答没有看过,虽然没让你立马回去等通知。但也许,你在面试官心中的印象就大打折扣了。 如果回答看过,并且还能较为流利地说上一番,那面试官或 阅读全文
posted @ 2020-12-14 12:57 田维常TWC 阅读(86) 评论(0) 推荐(0)
摘要:关注“Java后端技术全栈” 回复“面试”获取全套面试资料 分布式存储系统,将数据分散存储在多台独立的设备上。 传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。 分布式网络存储系统采用可扩展的系统结构,利用多台 阅读全文
posted @ 2020-12-13 13:11 田维常TWC 阅读(737) 评论(0) 推荐(0)
摘要:对于源码,很多人不知道如何看,今天来教教大家如何看源码。 前提是我们需要对整个Mybatis的原理、工作流程和模块进行一个整体的直知晓,另外还要有使用经验。 本文主要内容: 源码下载 如何下载源码? 进入官网 https://mybatis.org/mybatis-3/zh/index.html 方 阅读全文
posted @ 2020-12-13 13:06 田维常TWC 阅读(663) 评论(0) 推荐(0)
摘要:任何一个持续成长的公司最终都需要解决系统、组织和流程的扩展性问题。 大型网站通常具有如下特点: 1.高并发,大流量 2.高可用 3.海量数据 4.网络情况复杂 5.安全环境恶劣 6.需求快速变更 7.渐进式发展 现实中构建架构还需要考虑太多东西,作为程序员,真是有学不完的知识…… 最近很多小伙伴问我 阅读全文
posted @ 2020-12-12 15:03 田维常TWC 阅读(840) 评论(0) 推荐(0)
摘要:在以前文章中,我们对Mybatis进行了入门级的介绍教小师妹快速入门Mybatis,看这篇就够了,今天我们来从一个全局的角度看看Mybatis。 本文主要内容: Mybatis工作流程 Mybatis工作流程可以大致分为四个步骤: 下面我们就来说说这四个步骤: 加载配置并初始化 触发条件:加载配置文 阅读全文
posted @ 2020-12-12 15:01 田维常TWC 阅读(123) 评论(0) 推荐(0)
摘要:动态 SQL 是 MyBatis 的强大特性之一。如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL,可以彻底摆脱这种痛苦。 使用动态 SQL 并非一件易事,但借助 阅读全文
posted @ 2020-12-11 13:05 田维常TWC 阅读(600) 评论(0) 推荐(0)
摘要:MyBatis 提供了XML配置和注解配置两种方式。今天就来搞搞这两种方式是如何实现的。 MyBatis 的真正强大在于它的语句映射,这是它的魔力所在。由于它的异常强大,映射器的 XML 文件就显得相对简单。如果拿它跟具有相同功能的JDBC 代码进行对比,你会立即发现省掉了将近 95% 的代码。My 阅读全文
posted @ 2020-12-10 12:55 田维常TWC 阅读(951) 评论(0) 推荐(0)
摘要:本文主要内容: 传统JDBC 传统JDBC编码格式 public class DataBaseUtil { public static final String URL = "jdbc:mysql://localhost:3306/mblog"; public static final String 阅读全文
posted @ 2020-12-09 13:44 田维常TWC 阅读(126) 评论(0) 推荐(0)
摘要:关注“Java后端技术全栈” 回复“面试”获取全套面试资料 我们一再强调算法的重要性,但是很多同学依然半信半疑。 其实,作为一名计算机专业出身的程序员,我刚开始对算法和数据结构也存在着很大的偏见,认为它们就好像并没有多大作用。 也是因为这种偏见,自己在敲代码的过程中吃了不少亏。 作为一个吃过亏的男人 阅读全文
posted @ 2020-12-09 13:37 田维常TWC 阅读(88) 评论(0) 推荐(0)
摘要:输入文章标题... ​ `public final class String implements java.io.Serializable, Comparable<String>, CharSequence {` `private static final long serialVersionUI 阅读全文
posted @ 2020-12-08 13:01 田维常TWC 阅读(107) 评论(0) 推荐(0)
摘要:在并发程序中,关于线程数设置大小的说法: 线程数量设置太小,可能会导致程序不能充分利用好系统资源。 线程数量设置太大,可能会带来资源的过度竞争,导致上下文切换给系统带来额外的开销。 何为上下文切换? 在单核CPU时代,操作系统其实就已经能处理多线程并发任务了。处理器会给每个线程分配一个CPU时间片, 阅读全文
posted @ 2020-12-07 13:14 田维常TWC 阅读(316) 评论(0) 推荐(0)