抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

耦合

我们考虑一个web应用,使用三层架构: 视图层+业务层+持久层,
视图层依赖业务层,业务层依赖持久层,这是非常不好的现象,当我们的持久层需要改变的时候,整个项目都要改变,项目非常不稳定。

怎么解决

工厂!

maven依赖管理

maven工程可以帮助我们管理jar包的依赖,他有一个jar包仓库,这导致我们自己的项目会非常小。

maven启动

1
mvn tomcat:run

maven仓库启动

先本地,然后私服,然后中央仓库

Java代码

核心代码+配置文件+测试代码+测试配置文件

传统项目

1
2
3
workspace
src
config

Automic

是一个原子类型包,其中包含了AtomicBoolean,AtomicInteger,AtomicLong等, 原子操作说是这样说的,然而并不是所有的物理机器都支持原子指令,所以不能保证不被阻塞,一般而言,采用的CAS+volatile+native的方法,避免synchronized的使用,如果不支持CAS那就上自旋锁了

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial Spring 模块 Spring有六大模块,测试、容器、面向切面编程、instrumentation、数据访问与集成、Web与远程调用。 测试: Test 容器: Beans,Core,Cont...

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial 学习 spring 是一个轻量级框架 他最重要的地方时AOP和IOC,他的目的是降低耦合度,减少代码量 AOP 面向切面编程, IOC 控制反转,即将对象的创建交给spring,配置文件+注解 耦合...

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial 解释器与编译器Java在运行的时候,他的解释器和编译器会同时工作,解释器解释运行代码,编译器有选择性地编译部分代码为机器代码,以加速Java代码的执行过程 编译器Java编译器有两种,一种是客...

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial Java 编译 解析与填充符号表过程 插入式注解处理器的注解处理过程 分析与字节码生成过程 Java 语法糖 自动拆箱装箱 遍历循环 条件编译 : 类似c++的宏 范型与类型擦除 : Java...

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial Java共享数据的分类 不可变: 不可变数据是绝对线程安全的 绝对线程安全: “不管运行时环境如何,调用者都不需要任何额外的同步措施” 相对线程安全: 对一个对象单独对操作是线程安全对 线程兼容: ...

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial 硬件间速度的差距因为计算机各种硬件之间速度的差距实在是太大了,这严重地影响了计算机的整体效率,很多时候软件并不能够充分地利用计算机的资源,让处理器去等待内存,一种解决方案就是在内存和处理器之间引...

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial 如何判断对象已死引用计数算法为对象添加引用计数器,每当有一个地方引用他的时候计数器的值+1,当引用失效的时候计数器的值-1,当任何时刻计数器为0的对象就是不可能再被使用了。此算法效率高,但是无法解决...