- 博客(16)
- 收藏
- 关注
原创 jvm内存模型
jvm内存模型程序计数器+虚拟机栈+本地方法栈 构成了线程独享的内存区域方法区+堆区 是线程共享的内存区域1.程序计数器作用:流程控制、线程切换特点:线程私有、伴随线程的生命周期、唯一不会产生内存溢出错误的区域解释:对于一个处理器(或者是多核cpu的一核),在一个确定的时刻都只会执行一条线程中的指令,一条线程中有多个指令,为了线程切换可以恢复到正确执行位置,每个线程都需有独立的一个程序计数器,不同线程之间的程序计数器互不影响,独立存储。注意:如果线程执行的是个java方法,那么计数器记录
2020-07-02 11:35:32
115
原创 Spring学习笔记(四)三大框架整合
一、三大框架架构二、导包hibernatehibernate/lib/required:9个包:hibernate/lib/jpa:规范包hibernate-entitymanager数据库驱动:mysql-connector-javastruts2struts-blank.war/WEB-INF/lib/*:13个包(有一个和上面重复了,删掉)struts整合spring插件包:struts2-spring-plugin(这个包导入后,struts2在启动的时候就会寻找spring容器。
2020-06-01 16:45:20
183
原创 Spring学习笔记(三)spring的JDBC模板&事务管理
spring的JDBC模板spring为多重持久化技术提供的模板类简单测试 @Test public void fun1() throws Exception{ //0 准备连接池 ComboPooledDataSource dataSource = new ComboPooledDataSource(); dataSource.setDriverClass("com.mysql.jdbc.Driver"); dataSource.setJdbcUrl("jdbc:mysql://
2020-05-30 21:26:51
159
原创 Spring学习笔记(二)注解&AOP
spring的bean管理:注解1.将对象注解到容器: @Component组件Spring 中提供@Component 的三个衍生注解:(功能目前来讲是一致的)@Controller :WEB 层@Service :业务层@Repository :持久层这三个注解是为了让标注类本身的用途清晰,Spring 在后续版本会对其增强2.修改对象的作用范围:@Scopesingleton:单例prototype:多例3.生命周期的配置:@PostConstruct 、@PreDestr
2020-05-30 14:55:54
147
原创 静态代理&动态代理
静态代理我们可以使用类的包装来实现静态代理接口public interface Flyable { void fly(); String eat(String food);}实现类(目标类)public class Bird implements Flyable { @Override public void fly() { System.out.println("Bird is flying..."); try {
2020-05-28 20:25:45
114
原创 反射reflect
反射的概念JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。要想解剖一个类,必须先要获取到该类的字节码文件对象。而解剖使用的就是Class类中的方法.所以先要获取到每一个字节码文件对应的Class类型的对象.反射的演示1.获取class对象的三种方法 public void fun1(){ //第一种方式获取Class对象 User
2020-05-27 21:05:06
140
原创 Spring学习笔记(一)基础介绍
spring概述Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring 使用基本的 JavaBean来完成以前只可能由 EJB 完成的事情。然而,Spring 的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何 Java 应用都可以从 Spring 中受益。Spring 的
2020-05-27 16:04:19
266
原创 Struts学习笔记(四)拦截器&struts标签库
struts拦截器概述拦截器,在面向切面编程中用于在某个方法或字段被访问之前,进行拦截然后在方法执行之前或之后加入某些操作。拦截是AOP面向切面编程的一种实现策略。实现原理Struts2拦截器的实现原理相对简单,当请求struts2的action时,请求到达struts2的servletDispatcher的时候,Struts 2会查找配置文件,并根据其配置实例化相对的拦截器对象,然后串成一个列表,最后一个一个地调用列表中的拦截器。struts2的拦截器是可插拔的。拦截器栈就是将拦截器按顺序联结成
2020-05-20 16:44:07
147
原创 Struts学习笔记(三)OGNL&ValueStack
OGNL简介OGNL(Object-Graph Navigation Language)对象图导航语言,用于存取对象的任意属性,调用对象方法,遍历整个对象的结构图。${user.addr.name} 这种写法就叫对象视图导航。OGNL作用对象方法调用类静态方法调用和值访问支持赋值操作和表达式串联访问OGNL上下文(OGNL context)和ActionContext操作集合对象OGNL三要素1.表达式表示操作要做什么2.根对象Root规定了对谁操作。OGNL的所谓对象图,就是
2020-05-19 10:27:24
159
原创 Struts学习笔记(二)使用servlet的API&数据的封装
struts2访问Servlet的API方式一:完全解耦合-通过ActionContext类访问ActionContext中保存action执行所需要的一些对象,包括:parameters、request、session、application。下面是ActionContext类访问Servlet API的几个常用方法使用案例////访问servlet的api的方式一:完全解耦合(只能访问map数据,不能获取请求头、ip等public class RequestDemo1 extends Act
2020-05-16 12:31:27
158
原创 Struts学习笔记(一)入门&常见配置
1.Struts2框架概述Struts2是一种基于MVC模式的轻量级web框架,本质上相当于一个servlet,在MVC设计模式中Struts作为控制器来建立模型与视图的数据交互。Struts2以webwork为核心,采用拦截器机制来处理用户请求,使得业务逻辑控制器能够与servletAPI完全脱离开1.1常见的web层框架Struts1Struts2WebworkSpringMVCweb层框架都有一个特点:基于前端控制器模式实现1.2前端控制器传统请求,有一个请求就对应一个ser
2020-05-14 20:33:40
220
原创 Log4j的基本使用
Log4j介绍Log4j是Apache的一个开源项目,通过使用Log4j:控制日志信息输送的目的地是控制台、文件甚至其他控制每一条日志的输出格式定义每一条日志信息的级别,更加细致地控制日志的生成过程通过一个配置文件来灵活地进行配置,而不需要修改应用的代码作用:监视代码中变量变化情况,周期性的记录到文件中供其他应用统计分析跟踪代码运行时轨迹,作为日后审计的依据担当集成开发环境中的调试器的作用,向文件或控制台打印代码的调试信息jar包一共有五个,之间有协作关系log4j-1.2
2020-05-14 16:51:20
117
原创 hibernate关联级别策略
1.数据表和实体实体关系:客户和联系人之间是一对多的关系主表:cst_customer,客户的cust_id作为联系人的外键从表:cst_linkman,一个客户可以对应多个联系人Customer对象中有linkMens集合LinkMan对象中有customer对象2.关联级别策略有两种:集合关联策略、属性关联策略集合策略:在Customer.hbm.xml中配置 fetch属性:决定加载策略:使用什么类型的sql语句加载集合数据 select:默认值,单表查询加载
2020-05-12 19:47:56
227
原创 应用逻辑:haskell生成有理数集合
最近在上应用逻辑的课程,老师布置了一道题:生成全部的有理数集合的无限序列,也就是所有的有理数都要包含在这个集合中,并且还要求没有重复的未化简的形式看了两天haskell,另外借鉴了师兄去年的java代码,然后自己用haskell实现了一下,后面再附带上:代码解释+数学证明haskell代码mappend f []=[] //构建工具,将指定函数f应用在指定list上mappe...
2020-05-12 18:15:19
917
1
原创 MySql-explain详解
我们常常用到explain这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句有没有使用上了索引,有没有做全表扫描,这都可以通过explain命令来查看。所以我们深入了解MySQL的基于开销的优化器,还可以获得很多可能被优化器考虑到的访问策略的细节,以及当运行SQL语句时哪种策略预计会被优化器采用。expain出来的信息有10列,分别是id、select_type、table、type、...
2020-02-17 22:19:15
267
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人