- 博客(29)
- 收藏
- 关注
原创 前后端项目分离-----跨域问题
跨域基础认知1.跨域------说明最少有两个域,才会出现跨的这种情况2.跨域问题出现的本质 a.域名不同,b.端口号不同,c.协议 不同3,浏览器的同源策略-----(非地址栏请求),如a页面在a服 务器,b页面在b服务器,在a页面请求b页面的信息就会出现跨域问题,目的是为了保证用户信息安全(如果a页面可以获取b页面信息,相对的session信息,cookie信息,等用户身...
2019-05-27 16:04:50 291
原创 折纸飞机与开发项目
背景:今天老大和我们玩了一个折纸飞机的游戏 -------------------老大问谁会折飞机,然后有人举手,然后老大给他一张纸,然后他就开始折了,很快就折好了。然后递给了老大,这个过程中他没说话,老大也没说话。问题:(游戏过程就不说了,直接说问题)这个游戏的过程中我们完全没考虑一下几个问题1.为什么要折一个纸飞机(目标)??2.折个什么样子的飞机(过程)??3.折成一个纸飞机有什么意...
2019-01-11 20:48:03 393 1
原创 使用Mybatis在.xml文件中写sql语句心得体会
自定义sql语句1…xml文件的标签解析<mapper -------------------namespace命名空间可以理解为sqlid的前缀,目的是为了保证sql语句的唯一性(值为mapper接口的全路径名)namespace="。。。。。">-------------------resultMap 代表返回值数据库类型和java类型的映射,type值为返回的一个poj...
2019-01-10 15:07:52 18104 2
原创 深入理解java虚拟机----------读后感
深入理解java虚拟机第二章 自动内存管理机制1.运行时数据区域(jvm运行java程序时将内存分为不同的数据区域)A.程序计数器—记录的是当前线程执行字节码指令的行号指示器(线程私有),字节码解释器通过改变计数器的值来选取下一条需要执行的字节码命令,执行java方法会记录字节码指令的地址,执行本地方法为nullB.虚拟机栈—虚拟机栈生命周期和线程相同,代表java方法执行的内存...
2018-12-25 16:36:05 305
原创 高并发编程详解--------读后感
高并发编程详解第一章 快速认识线程1.Thread源码中start方法中的会对线程状态进行判断(该状态是由jvm控制的,源码中看不到对状态改变赋枚举值这部分的代码)threadStatus的状态由JVM控制。2.线程的执行单元就是run方法。创建线程只有一种方式就是构造Thread对象然后调用.start()才算是创建了一个线程。如果一个类继承Thread时就会重写Thread类的run方...
2018-12-24 17:30:41 347
原创 Mysql数据库索引
索引底层原理1MyISAM 和 InnoDB 是MySQL的两代搜索引擎; 区别在于,对于辅助索引的实现原理不一样,并且MyISAM是索引和文件分离的,而InnoDB不是;2.innodb存储引擎默认MySQL使用B+Tree实现其索引结构。3.索引文件存储在磁盘中,要想使用索引,存储引擎会按页(最大16K)读取磁盘数据到内存当中,(想要提高效率就要降低io读取次数,提高效率)。一次io操作...
2018-12-12 20:42:48 171
原创 数据结构的理解
数据结构的醍醐灌顶java常用基本数据结构类型: 1.线性结构:数组,链表,队列,栈(一对一) 2.非线性结构:tree(一对多)个人理解:不论是线性结构还是非线性结构,都是对数据存储方式的不同描述而已,数据存储在内存中(包含:数据 + 地址 ),而为了便于理解,我们将其抽象画为线性结构(数组,链表,队列,栈)非线性结构(tree)。便于我们使用java面向对象的思想来操作内存数据。...
2018-12-07 16:49:09 173
原创 数据结构之链表
单向链表思想:单向链表--------有一个头节点(head)(包含下一个节点的引用next),通过引用实现了节点之间的相关联,形成了一个链表 private node head ; //查询 public Object get(int index) { node temp = head.getNext() ; if(index&l...
2018-12-06 17:43:45 136
原创 java多线程之线程副本(ThreadLocal)
ThreadLocal理解使用1.threadlocal是一种多线程间并发访问变量的解决方案,采取以空间换时间的方式,不使用锁,为每个线程提供变量的独立副本,以保障线程安全2.背景:变量分为类变量 实例变量和局部变量(局部变量是线程安全的不用考虑)情景一:ThreadLocal存储类变量的时候存在线程安全问题,所有线程共享类变量,变量的改变会导致所有线程副本变量的改变 private Th...
2018-12-05 17:00:19 1309 1
原创 springboot自动化配置
自动化配置部分源代码public ConfigurableApplicationContext run(String... args) { StopWatch stopWatch = new StopWatch(); stopWatch.start(); ConfigurableApplicationContext context = null;...
2018-12-03 16:33:49 360
原创 shiro系列-----------注解授权
使用注解进行权限控制1.原理:通过拦截器拦截特定的注解,然后解析注解里的值,然后判断subject.has*()转交给SecurityManager处理,层层流转最后会去比对域值或者缓存值。2.拦截器源代码之一public class PermissionAnnotationHandler extends AuthorizingAnnotationHandler { public P...
2018-11-14 17:36:13 290
原创 shiro系列--------身份验证
shiro身份认证1.pom文件中加入相关依赖2.shiro中最重要的就是SecurityManager ,有了它你就可以做你想做的一切 //我们可以通过工具类SecurityUtils来进行操作(从而封装了SecurityManager的复杂操作逻辑,例如获取subject)web项目(DefaultWebSecurityManager) SecurityUtils.setSecur...
2018-11-14 16:46:49 146
原创 spring4读后感---------------bean装配
spring容器装配bean方式1.组件扫描使用@componentScan使用组件扫描的方式(默认扫描当前包及其子包路径下使用了Spring注解的类,发现这些类并创建bean对象),可以自动配置包扫描,默认是单例模式。2.自动装配使用@Autowired进行自动装配(可以使用实例变量或方法上),会在需要依赖关系时,从spring容器中找到这个bean,使其依赖关系成立3.jav...
2018-10-26 16:35:43 160
原创 spring4读后感-----------spring容器
spring应用上下文1.基于spring的应用,应用中的对象存在于spring容器中,spring容器负责创建,装配,并管理他们的生命周期从new到finalize(),spring使用di管理着构成应用的组件2.spring容器分为两种,bean工厂和应用上下文(从属性文件解析文本信息),3.spring拥有多种类型的应用上下文。1.classpathXmlApplicationCo...
2018-10-26 13:59:17 103
原创 Spring4读后感-------开篇0
spring如何做到简化开发1.spring使用了简单的bean的轻量级和最小侵入性编程当我们声明一个简单的javabean类时,我们并不能看出这是个spring的组件(这个类就是非侵入式编程模型)(除非有spring注解),即这个类只要在java语言编写的应用中都可以使用。2.通过依赖注入和面向接口实现了松耦合传统的类与类之间的协作,类a的a方法需要类b的b方法的协作的时候我们往往...
2018-10-25 17:26:56 136
原创 shiro的一次认证多次授权
shiro的一次认证多次授权springboot整合shiro(使用@Bean注解的形式配置javabean)1.先在pom文件中引入shiro的jar包;<dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-all</artifactId>...
2018-10-18 15:52:52 2594
原创 子类的实例化(静态代码块,静态成员变量,构造方法)
子类实例化顺序-父类 public class test { public static String testStatic = “testStaticString”; //public static Integer i=0; public String getName() { return name; } ...
2018-09-13 21:13:34 347
原创 springboot的默认日志源码(logbcak)
springboot的默认日志分析base.xml included&gt; include resource=”org/springframework/boot/logging/logback/defaults.xml” /&gt; //property是变量 property name=”LOG_FILE” value=”{LOG_FILE:-{LOG_FILE...
2018-08-21 17:00:18 612
原创 java多线程之线程池原子类(AtomicInteger )的操作妙用
线程池原子类(AtomicInteger )的操作妙用将原子类的AtomicInteger的二进制位数(32位),拆分高3位(表示线程的运行状态)和低29位(表示工作线程数量)(大学基础知识)或,与,左移操作(0 | 0 =0 ,0 | 1 =1,1 | 1 =1,0 & 0 =0 ,0 & 1 =0 ,1 & 1 =1,<<左移操作)——(1和任何数或...
2018-08-09 17:20:54 1755
原创 java多线程之线程池源头(ThreadPoolExecutor源码)
线程池源头(ThreadPoolExecutor)new 一个线程池时的源码分析(参数最全的构造) //和系统上下文安全有关(待研究) private final AccessControlContext acc; //线程池定义的核心线程个数 private volatile int corePoolSize; //线程池定义的最大线程数量(除核心线程数外,且必须要比核心线程数大...
2018-08-09 16:36:50 201
原创 Java多线程之线程池源码(线程池种类)
多线程之线程池创建固定大小的线程 public static ExecutorService newFixedThreadPool(int nThreads) { return new ThreadPoolExecutor(nThreads, nThreads, 0L, TimeUnit.MILL...
2018-08-09 15:09:14 165
原创 java多线程之休眠(sleep)
多线程之休眠(sleep())sleep()方法会使当前线程由运行状态进入到休眠(阻塞)状态同时让出CPU资源,休眠结束后,就会由阻塞状态变为就绪状态,竞争CPU资源,整个过程都会持有对象锁 private static List obj = new ArrayList&lt;&gt;(10); @Override public void run() { s...
2018-08-08 14:40:00 2604
原创 java多线程之(yield)
java多线程之让出(yield()) 重点:yield()方法会让出CPU资源!————亲测重点————不会持有对象锁(网上很多帖子说会持有对象锁) private static Integer obj = 10; public static void main(String[] args){ ThreadA t1 = new ThreadA(“t1”)...
2018-08-08 11:08:43 155
原创 java多线程之等待(wait)和通知(notify)
多线程等待(wait)和通知(notify)wait()用于释放锁,所以在释放之前要必须要持有对象锁,所以必须在 synchronized(obj){}内部使用wait()notify()用于唤醒等待线程,并且不会立刻释放锁资源,因为要释放锁资源,所以必须 在synchronized(obj){}内部使用notify(),在加锁代码块执行完毕后才会去释放锁住资源,并运行wait...
2018-08-07 15:44:30 377
原创 java多线程对象锁(关键字:synchronized)
java对象锁(关键字:synchronized)全局锁——指的是在静态方法上使用关键字或者直接对.class类对象加锁 public static synchronized void synMethod3() { for(int i=0; i<10; i++){ System.out.println(Thread.currentThread...
2018-08-07 11:03:28 539
原创 java多线程之实现方式
多线程之实现方式 extends Thread 1.单继承implements Ranable 1.多实现 2.多个Thread 可以共享一个多线程的资源(实现了Runable); public class duoxianchengtest1 implements Runnable { int i = 10; @Override public voi...
2018-08-06 17:08:13 190
原创 java事务系列(2018/8/6)
事务系列默认spring事务只在发生未被捕获的 RuntimeExcetpion时才回滚。注解事务 1.@Transactional—–默认出现RuntimeException异常时才会回滚,需要try()catch()手动抛出RuntimeException异常,手动事务 1.TransactionAspectSupport.currentTransactionStatus().s...
2018-08-06 16:11:34 163
原创 java异常系列(2018/8/6)
异常系列demo1(捕获异常不抛出) 1.异常try catch 之后如果不抛出异常,不会影响代码的正常业务逻辑(异常代码对代码前后 没有影响)try()中异常之后的代码不会执行 2.运行过程中抛出异常,系统默认为是RuntimeException(隐式的不需要显示的抛出), 3.自定义异常如果继承Exception就需要显示抛出(throws zidingyiExcep...
2018-08-06 15:40:51 107
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人