- 博客(155)
- 收藏
- 关注
原创 java对象存储参考图
现阶段的思考: 虽然我们都说java是面向对象的编程语言, 但即便如此,java终归是编程语言,编程语言就是要跑程序的,所谓跑程序就是跑逻辑,所谓跑逻辑就是跑方法, 所谓跑方法就是说方法很重要; 所有的程序运行,归根结底是方法对数据的处理, 尤其是现在大行其道的互联网应用,更能体现这一点: 一个完全不懂编码的用户,他不知道你所说的对象是啥,他只知道他使用你的程序时,输入一些数据,然后你的程序经过对他数据的处理,最终给他一些结果, 对于用户来说,你的程序就是一堆运行逻辑,这些逻辑对程序员来说就叫做方法; 感
2021-10-28 23:04:22
228
原创 并发编程001
没办法还是要聊 线程/进程/CPU(单核)/内存;1 .[CPU]就好比一个有限的 [电力系统]2. [内存]就好比一个[工业区]3. [进程]就好比一个[工厂]4.[线程]就好比一条[生产线]5. [CPU] 同一时刻只能给某一个[线程]提供计算, 就如同[电力系统]同一时刻,只能给某一个[生产线]供电;6. 一个[进程]被分配的内存空间,就好比是一个[工厂]被分配的厂区;7.[线程]运行方法,就如同[生产线]运行工序; 所以 [方法] 就相当于[工序]; [程序编排]就是..
2021-08-28 01:52:22
133
原创 使用IDEA调用自定义脚本 自动生成SpringDataJpa代码
#### 1. 打开IDEA自带的数据库连接工具 ##### 2. 尝试连接数据库##### 3. 尝试连接数据库##### 3.1 如果遇时区错误,请到文章最后,有讲解,此处不表;##### 4. 选中数据库,选中脚本,尝试生成代码##### 5. 选中数据库,选中脚本(我选中的是 GenerateServiceDaoEntityPOJOs.groovy ,这个脚本我放在后边),尝试生成代码,结束;##### 6.GenerateServiceDao...
2020-12-28 14:55:53
654
原创 SpringDataJPA基本操作
# 引入pom依赖```xml<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId></dependency><dependency> <groupId>mysql</groupId> &
2020-11-15 19:11:56
164
原创 关于Java中的锁机制的粗浅理解
文章目录前言一、第一套机制:基于Monitor的Synchronized + 锁对象 的隐式锁机制这一套机制立身之本是Monitor二、第二套就是基于AQS的 Lock和Condition 的显式锁机制总结前言并发编程中会涉及到锁的概念,目前接触到的是两套机制,根据现有理解,简单理解一下,后边如果发现有不妥之处,再来纠正一、第一套机制:基于Monitor的Synchronized + 锁对象 的隐式锁机制这一套机制立身之本是Monitor接下来我们首先看下在monitor在Java虚拟机(Ho
2020-11-10 21:41:55
229
原创 Lock的实现原理分析
文章目录前言一、synchronized 用在成员方法上二、wait() 与notifyAll()三、我们来看一下Lock的代码总结前言之前看过一次sun.misc.Lock 的源码,当时对这个源码将synchronized 和 wait(),notifyAll()的结合使用,当时只是觉得代码写得非常巧,却不能将代码用自己的语言去理解,现在尝试用自己的语言去解释一下提示:以下是本篇文章正文内容,下面案例可供参考一、synchronized 用在成员方法上synchronized 用在成员方法上
2020-10-31 23:46:30
583
原创 Spring声明式事务中为啥要求方法被public修饰
allowPublicMethodsOnly方法由子类AnnotationTransactionAttributeSource实现,该子类方法中默认是true,所以当你加了事务注解的方法不是public时,该方法直接返回null以上只说明 在spring的事务管理中存在这样一个 public的判断,至于后边为啥由于这个判断导致没有织入事务,并没有说明;(可以提供一些蛛丝马迹: AopUtils 有方法canApply:/** * Can the given poin...
2020-10-23 19:46:16
1609
原创 JDK动态代理和CGLib动态代理的简单理解
1.首先说明一点,这个动态代理只是一个名字,不要被这个名字吓坏了,不管什么代理不代理, 最终结果都是这个过程:类(你创建)--->字节码(编译)--->内存中的Class(加载)--->堆中的对象(你创建), 然后我们 使用对象调用方法上边是一个常规过程,比较好理解,而这个动态代理是个什么回事儿呢? 他直接这样干:字节码(代理生成)--->内存中的Class(加载)--->堆中的对象(代理给你创建) ,然后我们 使用对象调用方法其实 上边两个过程本...
2020-10-22 23:49:00
994
原创 对ThreadLocal的理解
1.我们先来聊聊ThreadLocal的里边自定义的 "hashCode " (即: threadLocalHashCode ),他俩作用一样,所以第一次看源码,你就不要浪费时间在它身上,你就可以把它当做是 "hashCode " 简单说明 threadLocalHashCode 生成原理:ThreadLocal 里边存在下边这三个东西 private static AtomicInteger nextHashCode = new AtomicInteger(); // ...
2020-10-21 23:17:50
383
1
原创 web.xml
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.
2020-10-14 17:00:56
83
原创 Spring使用Xml创建bean的过程
Spring通过Xml创建bean的过程:ClassPathXmlApplicationContext 的 构造方法调用 AbstractRefreshableConfigApplicationContext 的 setConfigLocations调用 AbstractApplicationContext 的 refresh()调用 AbstractApplicationContext 的 obtainFreshBeanFactory()调用 AbstractApplicationCo...
2020-10-13 21:40:48
288
原创 mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration> <typeAliases> <package name="cn.entity"/&g...
2020-10-07 16:17:19
162
1
原创 IDEA快捷键2
一键格式化代碼: Ctrl+Alt+L全局搜索替换:ctrl+shift+r强大的搜索功能,shift+shift (无论您想要搜啥都能找到)ctrl+shift+R==搜索类 CTRL+N:按照类名搜索类【常规】Ctrl+Shift + Enter,语句完成“!”,否定完成,输入表达式时按 “!”键Ctrl+E,最近的文件Ctrl+Shift+E,最近更改的文件Shift+Click,可以关闭文件Ctrl+[ OR ],可以跑到大括号的开头与结尾Ctrl+F12,可以显示当前.
2020-10-07 16:13:27
138
原创 IDEA快捷键1
0.跳到下一行编辑shift+enter1.代码自动补全alt+enteralt+/2.自动生成变量ctrl+alt+v3.多行编辑alt+左键4.自选多行编辑ctrl+alt+左键5.生成getset方法alt+insert6.一键格式化代碼: Ctrl+Alt+L全局搜索替换:ctrl+shift+r强大的搜索功能,shift+shift (无论您想要搜啥都能找到)ctrl+shift+R==搜索类 CTRL+N:按照类名搜索类7.可以把代码包在一个块内Ctrl+.
2020-10-07 16:12:56
265
原创 applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springf...
2020-10-07 16:12:07
100
原创 springmvc.xml
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springf...
2020-10-07 16:10:41
91
原创 log4j.properties
### 设置Logger输出级别 DEBUG,INFO,WARN,ERROR,FATAL和输出目的地 ######log4j.rootLogger=debug, stdout,logfile###log4j.rootLogger=ERROR,stdout### 把日志信息输出到控制台 ###log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target=System.outlog4j.appe
2020-10-07 16:09:08
109
原创 对lucene更清晰的理解
1.luceneLucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现 全文检索 的功能,或者是以此为基础建立起完整的全文检索引擎。2. 全文检索3.倒排索引倒排索引源于实际应用中需要根据属性的值来查找记录。这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引(in...
2018-10-27 17:38:15
198
原创 Extjs中打开一个新的窗口并加载一个url
function createWin(w, h, x, y){ var win = Ext.create('Ext.window.Window',{ title: ‘窗体标题’, layout: 'fit', //设置布局模式为fit,能让frame自适应窗体大小 modal: true, //打开遮罩层 hei...
2018-09-14 12:56:22
4429
2
原创 Struts2复习
1.使用strut2解决什么问题> 1. 在服务器中怎么获得请求参数 2. 怎么跳转页面 3. struts2中使用什么来代替原来的servlet完成的逻辑操作;2. struts2 基本执行流程: 1. 配置好过滤器, StrutsPrepareAndExecuteFilter 以及映射路径(例如 /*),这个映射路径 是告诉strut...
2018-09-03 22:09:20
182
原创 Oracle复习
1. oracle 常用数据类型: 1.字符型 1. char 固定长度的字符类型 (最多存储2000个字节) 2. varchar2 可变长度的字符类型 (最多存储4000个字节) 3. long 文本类型 最多存储2个G 2. 数值型 1. number(5) 数值类型 代表可以存储5位数(整数) ...
2018-09-03 22:06:49
158
原创 Activiti学习心得
1.流程定义id : 就是指向特定的流程,版本,和一个随机数. 就是指向了某一个流程的确定版本2.流程实例id : 就是一个流程被创建之后,会生成一个id. 就是指向了一个具体的流程3.流程任务id : 就是一个正在执行的任务,流程进行到任何一步都会生成一个id, 就是记录了一个流程实例执行到了哪一步;谁是执行人4.活动id: 就是执行流程过程中,记录了流程所处的活动位置(这个活动...
2018-09-03 22:05:34
1163
1
原创 关于Oralce的远程连接
----------------------------------------------------------------------------------------------------------------------------------------------------------1. 在oralce所在服务器上通过命令行窗口,利用sqlplus可以连接or...
2018-08-23 20:52:37
285
原创 AngularJS的理解模型
======================分割线,下面是对angularJS的自定义服务的理解=============================1. 自定义服务: 1. 定义格式 app.service("brandService",function(){ this.findAll=function(){ ...
2018-08-13 13:01:50
218
原创 各种配置文件大总结
1. Spring Data JPA 配置:0.框架知识概述:Spring Data JPA 是一个持久层的框架,而一个持久层框架所做的事情不过两件:连接数据库(比如 JDBD连接数据库) 2.操作数据库(比如 sql 操作数据库);连接数据库:配置参数抽取: config.properties 配置:# oracle jdbc propertiesjdbc.url...
2018-08-13 13:01:42
10358
原创 dubbox架构梳理
1. 在虚拟机上开启zookeeper;2. 建立service项目: 1. web.xml中配置 <!-- 加载spring容器 --> 扫描classpath*:spring/applicationContext*.xml; 2. 在applicationContext-service.xml中配置: <!-- 声明一个应用...
2018-08-13 13:01:30
272
原创 Cookie和Session重新认识
1. 什么是会话? 会话简单地理解为:用户打开一个浏览器,点击多个超链接,访问服务器多个web资源, 然后关闭浏览器,整个过程称为一个会话; 我们可以类比打电话挂电话,这个过程为 一次通话;是一个道理;2. 会话过程中要解决的一些问题? 每个用户与服务器进行交互的过程中,每个用户都会产生自己的用户数据,这个时候 程序就要想办法保存每个用户的数据;javaW...
2018-08-13 13:01:20
245
原创 lucene的笔记
1. lucene 的一些概念: 1. 索引 Index 2. 分词 Analyzer----> 词条 Term 3. 存储 Store 4. 文档 Document 5. 字段 Field 上边概念串一串: 一个 文档(Document)比如一个博客/文章(Blog/article) 中有多个字段:比...
2018-08-13 13:01:10
139
原创 SSM整合流程
1. lib目录导入jar包2. mybatis整合 1. 编写mybatis核心配置文件 sqlMapConfig.xml 2. 编写jdbc.properties 连接参数配置文件 3. 编写 applicationContext-dao.xml ; 1. 导入 jdbc.properties; 2. 配置连接池; 3....
2018-08-13 13:01:01
490
原创 Springmvc拦截器分析
基本共识:interceptor有三个方法: preHandle() 如果处理器映射器找到请求的controller则第一个拦截器的该方法 执行,后边的拦截器需要前边的 return true; 才会执行; postHandle() 这个方法的执行时机是handler方法体逻辑执行结束,返回modelAndView 之前; 可以认为这个方法时内嵌在...
2018-08-13 13:00:52
179
原创 SSH/SSM整合分析
1. SSH框架: 1.struts2 与 Spring整合要解决的核心问题是,如何在action中获得被spring管理的service 解决思路: 1: 想办法让action具有 自动注入的功能; 2: 让action纳入spring管理; 解决方案: 导入整合包: st...
2018-08-13 13:00:42
497
原创 Springmvc-Spring-Mybatis整合
1. Springmvc 操作流程分析: 1. 入口是: DispatcherServlet 这个在web.xml中配置,用来拦截请求;同时在 DispatcherServlet 中设置初始化参数: contextConfigLocation 用来指定它的核心配置文件的路径:classpath:spring/springmvc.xml; 2. 在核心配置文件中配置...
2018-08-13 13:00:33
131
原创 mybatis输入输出映射
1. 单表查询如果存在 表中字段与类中属性名称不一致 解决办法: 1. 在做查询时用别名; 2. 自建映射关系; 2. 多表关联查询,怎么将两个表的数据封装问题: 1. 在主表的基础上 重新创建一个主表的 vo类 ,让vo类继承主表对应的pojo , 在vo中定义 被关联表的字段,在做关联查询时,对select 后边的字段做规范, ...
2018-08-13 13:00:20
259
转载 Spingmvc与Struts2执行流程
1. SpringMVC 前端控制器 ----> 客户服务经理 : 用于接收客户请求,并给客户响应; 处理器映射器---->人力资源部经理: 客户服务经理接收到客户请求以后,到人力资源部 根据每个人的岗位职能信息 (相当于 url),来找到可以解决客户需求的技术人员 handler; 处理器 ----> 技术人员: 真正解决问题客户的问题...
2018-08-12 22:41:54
128
原创 hibernate与mybatis对比
1. 我们说 orm 是 "对象关系映射" 之前一直理解的是 "类" 和 "表" 或者说是 "对象" 和 "每条数据" 之间 的映射,这种映射体现在本来要对 "表" 进行的操作,直接对 "类" 操作就行了,本来对 "每条数据" 的操作 直接对 "对象" 操作就好了; 比较典型的orm 框架 hibernate 就
2018-08-12 22:38:35
242
原创 对Mybatis的理解
1. mybatis的一些理解: mybatis是一个什么样的持久层框架呢? 1.它对jdbc的做了封装, 1. 比如将连接基本参数封装为自己的连接池; 避免了反复创建连接,导致数据访问效率变低; 2. 他没有封装 作为一个持久层框架,mybatis需要做两件事情:1.连接...
2018-08-12 22:37:43
4535
原创 对于Shiro的理解
1. 拦截器与过滤器的区别?2. 关于Shiro细粒度方法级别控制权限的理解: 基本共识: Spring就是一个解剖工厂,任何一个类被注册到IOC容器中,Spring都会通过反射技术 将这个类"肢解",所谓肢解就是会拿到这些东西: 类,属性,方法,以及它们的声明,它们的注解. 这个时候会有不同的对象要向Spring索要这个对象时,Spring会根据注解给予响应的代理; ...
2018-08-12 22:36:38
949
原创 HIbernate回顾
1.框架为我们做了哪些工作?2.对象的三种状态 1.瞬时态 2.持久态 3.托管态 3.一级缓存: 就是session的缓存,因为hibernate要直接与数据库交互,为了减少对数据库的访问次数, 创建缓存来保存一些数据,从而提高查询效率;一级缓存是由一些了集合构建的,对应着内存中的一片区域; 一级缓存只支持OID查询,所谓OID...
2018-08-12 22:29:47
130
原创 JsonP实现跨域访问的原理图文分析
1. JsonP实现跨域访问的原理分析: 1.首先理解几个知识点: 1.跨域:所谓跨域,就是指当 服务器A 响应(回来的html) 中有向 服务器B 发送的请求,当然这样说不太 准确,准确地说:只要 :协议,IP,端口,三者中有一个不同,那么都会出现同源访问策略问题,这个时候 的访问都是跨域访问; ...
2018-08-12 22:26:03
287
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人