- 博客(25)
- 收藏
- 关注
原创 面试题:找出无序数组中出现频率最高的元素
解决这道题的思路有很多 比如: 1.给数组排序变成有序数组,然后找到重复次数最多的元素; 2.用HashMap存储数组元素,优先队列存取数组元素出现的次数,找出现次数最多的元素输出; 3.记录元素出现的次数及对应的值,循环不断更新最大次数和对应的值,最后保存的就是最大的元素个值;第三种思路:package com.test.bishi;/** * 2018-9-28...
2018-09-29 15:55:52 2975
原创 线程池详解(二)
三、线程池原理: 管理同构线程的资源池。实现线程复用,线程处理完一个任务不被销毁,可以继续处理下一个任务; 为什么要用线程池呢?? 创建/销毁线程伴随着系统开销,过于频繁的创建/销毁线程,会很大程度上影响处理效率; 避免线程并发数量过多,抢占系统资源从而导致阻塞 对线程...
2018-09-11 11:31:05 283
原创 多线程并发问题(一)
一、线程两种创建方式:1.继承Thread类创建线程:public class FirstThreadTest extends Thread { public void run(){ System.out.println("这里是线程的执行方法"); } public static void main(String[] args) { ...
2018-09-11 11:11:50 1316
原创 数据库事务&隔离级别
1.事务:作为一个单元的一组有序的数据库操作。 2.数据库事务(进行事务操作)的四大特征: <1>原子性:事务包含的操作不可分割,要么全部执行,要么全部回滚,不存在某一小部分执行成功的情况; 例如:ATM机取款的一个事务操作,你需要 插卡--输入密码--取款金额1000--吐出现金1000--卡内余额会减少1000;取款成功...
2018-09-09 20:49:40 1103
原创 二叉树中和为某一值的路径(Java)
题目:输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前) 分析:<1>一条路径都是从根节点出发到某一个叶子节点结束的,所以用二叉树的前序遍历(第一个访问根结点); <2>需要把当前访问的结点保存...
2018-09-08 18:47:07 1489
原创 二叉树的后序遍历(Java)
题目:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。二叉搜索树:左子树的所有结点小于根结点 && 右子树的所有结点大于根节点;二叉搜搜索树的后序遍历:遍历的最后一个元素是树的根节点;基于以上两点,遍历的数组可以分为两部分,前半部分是左子树的值,后半部分是右子树的值,需要用递归的方...
2018-09-08 11:01:45 3562
原创 从上到下打印二叉树(Java)
题目:从上往下打印出二叉树的每个节点,同层节点从左至右打印,(上到下&左到右)。。 借助辅助队列实现二叉树的层次遍历不难看出这是二叉树的遍历,但却不是我们常用的前序、中序、后续遍历,这是一种按层遍历,同一层的结点从左到右打印;先打印根节点----需要将该结点得到字结点保存到某个容器中; 例如:先打印根节点 8 ,将子节点 6、10保存到容器(6...
2018-09-08 11:00:36 934
原创 AOP的两种实现(注解&XML)(二)
AOP的两种实现方式:<1>.注解方式:简化配置文件,加如注解扫描即可。。 1.注入maven依赖包: 2.定义一个StuServiceIml类,有切入点(被增强的方法);package com.spring.service;import org.springframework.stereotype.Repository;@Reposito...
2018-09-07 12:34:06 161
原创 Spring AOP&&动态代理(一)
AOP :面向切面的编程 是对OOP的扩展OOP :引入封装、继承、多态等概念来建立一种对象层次结构;OOP允许开发者定义纵向关系,而不能处理横向关系;像类似日志记录、异常处理这种代码都是横向散落在代码中,它与核心业务代码无关,这种散落各处的无关代码称为横切,在OOP中它导致了大量代码的重复,且不利于各模块的复用。。AOP:与OOP相反,采用 “横切”技术,解剖封装的对象内部,将影响多...
2018-09-07 11:03:38 886
原创 工厂模式(二)
一.工厂方法模式:允许在子类中实现本类的实例化 1.作用:实例化对象的方法,即创建对象(生产产品);提供代替方法代替了调用构造函数创建新对象的通用方法; 2.实例:日记记录功能(文件存取日志 数据库记录日志 控制图记录日志)需要一个统一的接口和一个具体实现类完成。 3.各个角色类: 产品类(Prod...
2018-09-05 18:47:20 144
原创 单例模式详解(一)
单例模式单例模式属于创建型模式:注重完成对象的实例化(框架应用:struts 中的action)单例模式:确保某个类在系统中仅有一个实例,并提供一个访问它的全局访问点 jvm 虚拟机中只有一个对象; 全局访问点:第一次被访问时完成了对象的实例化; 创建策略:构造函数私有化(其他类不能访问)-----限制单例类实例化...
2018-09-05 18:41:42 253
原创 设计模式详解
什么是设计模式?? 1. 设计模式通过定义,使用,测试去解决特定问题,与OOP思想不可分割; 2.针对软件设计中的重复性问题,可维护性强,可扩展性强; 3.设计模式不仅描述了软件的架构方法,还说明了类与对象的交互关系,尤其是在运行时的关系。 4.恰当使用设计模式会提高代码复用性---- 复用:引入封...
2018-09-05 18:40:49 180
原创 Hibernate 缓存机制(N+1问题)详解
Hibernate 缓存机制: 担心:两张表查询(关联查询)起来效率会不会低呢??hibernate 缓存机制非常强大。。。缓存:介于应用程序和物理数据源之间为了降低应用程序对物理数据源的访问频率,从而提高应用的运行性能(缓存内的数据是对物理数据源的复制,缓存的介质一般是内存,所以读取速度很快;如果缓存中的年数据量很大 将硬盘作为介质)。缓存的实现不仅考虑介质,换应该考虑缓存的并发访...
2018-08-28 13:22:49 5128 1
原创 Hibernate 框架+实例(一)
Hibernate : Hibernate是持久层框架,以通过操作实体对象来完成数据库操作,不需要写复杂的sql 语句; Hibernate是Java环境的对象/关系映射(ORM)解决,(由于数据在实体对象与关系数据库之间表达方式的不匹配); 对象/关系映射:指的是在对象模型表示与关系数据模型表示之间映射数据 Hibernat...
2018-08-21 10:36:00 1844
原创 MyBatis-Spring 整合详解(三)
MyBatis:用纯程序的方式在main 函数中得到数据库连接 直接读mybatis-config.xml文件;MyBatis-Spring:在spring容器中加载MyBatis; MyBatis整合到Spring 配置步骤: 1.SqlSessionFactory必须创建 并且传递数据源 这是mybatis 的基础bean ;2.直接用mapper接口去做查询;...
2018-08-16 19:01:13 263
原创 MyBatis 创建步骤-实例(二)
MyBatis创建步骤: 1.创建mybatis-config.xml;2.利用SqlSessionFactoryBuilder 这个类,其加载mybatis-config.xml配置文件,并生成SqlSessionFactory这个工厂类;3.利用工厂类去得到SqlSession,SqlSession帮我们去执行mapper中的sql语句4.创建mapper映射文件, ...
2018-08-15 09:49:31 2325
原创 MyBatis 框架详解 (一)
持久层框架:直接操作对象 将查询结果转换成对象集合 把对象保存到数据库 你不用写太多sql 语句(容易出错,不利于面向对象) MyBatis:是一个持久层的框架,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java...
2018-08-15 09:46:20 485
原创 数据库连接池
连接池:把连接放在一个池里,它里面有很多连接 会给你空闲的连接使用,Java从数据源里面的得到连接 (线程池把连接放进去,会有连接的标志--占用/空闲 你去拿时-- 给你/等待) 需要一个类来获取数据源数据源:即DataSource的实现,数据源中实现了数据库连接池的实现; 使用数据库连接池后,不再需要数据库连接的代码,直接从数据源...
2018-08-14 21:01:02 291
原创 Java及spring 注解(反射原理)
java注解: Java5.0以后引入了注解的概念 注解只在源码阶段保留(编译时忽略),不会影响程序内部的东西,决定运行级别 是一个标识 定义一个注解就可以在其他类中使用1.元注解:注解上面的注解 (1)@ Retention(...) ...
2018-08-14 00:55:28 11883
原创 spring mvc 框架及项目搭建流程
spring web MVC: 基于servlet 请求驱动的web框架 spring web项目的配置文件: web.xml:web项目的入口 配置DispatcherServlet,(配置全局servlet(DispatcherServlet)和监听器listener); applicationContest.xml:容器启动时加载(全局配置 classpath...
2018-08-13 18:29:56 1317
原创 spring 容器(控制反转及依赖注入)
spring:是一个容器,项目开始就一直在运行; spring--加载进内存里面 容器中有监听器 引入容器,而struts注重运行时; 核心类中监听器...监听启动后可以从context(上下文即spring所有的配置)中获取内容,将核心配置文件(applicatinContext.xml)交给spring容器) 1.实例化 sp...
2018-08-13 11:46:38 1937
原创 json 及 Ajax 简单总结
json :一种数据格式,类似 xml (按层级表示对象,及对象之间的层级关系),也是表示对象,属性,json 相对于xml 格式 非常轻量级 很适合服务器与JavaScript 之间的交互。 在json 中:【】--数组集合 { }--对象 数据主要以键值对形式存在 name:value 各...
2018-08-04 09:24:18 7691
原创 struts 文件上传
struts2 是通过Commons FileUpload文件上传。Commons FileUpload 通过将HTTP数据保存到临时文件夹,然后struts使用 fileUpload 拦截器将文件绑定到 Action实例中,从而我么就可以以本地文件的方式操作浏览器上传的文件。具体实现如下:1.首先需要一个文件上传的jsp页面,file标签实现 <s:form actio...
2018-07-30 09:43:06 125
原创 struts2 配置文件中 result的用法
result 标签主要有 请求转发(带参数)和 请求重定向(不带参数)两种方式。标签主要有两个属性: name--与action中的method的返回值匹配(默认 SUCCESS); type--用于定义跳转方式,即指定以什么方式跳转到指定页面(默认 dispatcher); 请求转发(带参数) 请求...
2018-07-27 00:30:29 1113
原创 Struts2编写Action及获取参数的三种方法
一、编写Action 的三种方法 1.创建普通类 自己创建的普通类需要人为定义常量SUCCESS,而且没有表单校验等功能,需要自己编写代码实现。package com.test.struts2;public class TestAction2 { public String execute() { return "success"; } publ...
2018-07-25 10:28:32 926
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人