- django使用踩坑经历
AI航海家(Ethan)
Djangopython后端框架djangosqlite数据库postgresql
DRF使用drf获取序列化后的idvisitor_serializer=VisitorSaveSerializer(data={…})ifvisitor_serializer.is_valid():visitor=visitor_serializer.save()visitor_id=visitor.pkpostgrepsql踩坑django使用postgrepsql,使用聚合函数如:sum等,被
- three.js+WebGL踩坑经验合集总目录
iloveas2014
webglthree.js
(1):THREE.Line无故消失的元凶(2):3D场景被相机裁切后,被裁切的部分依然可以被鼠标碰撞检测得到(射线检测)目录更新中...
- 修改 Go 版本后不生效?深入排查与解决方案
阿狸远翔
golang开发语言后端
Mac修改Go版本后不生效?深入排查与解决方案问题背景在使用Mac开发时,我们经常需要切换不同版本的Go语言环境。通过工具goenv设置全局版本后,执行goversion却发现版本未改变:goenvversionssystem*1.19.13(setby/Users/xxx/.goenv/version)goversiongoversiongo1.21.3darwin/amd64#实际版本与预期不
- libOnvif通过组播不能发现相机
容沁风
onvif组播libonvif大华
使用libOnvif库OnvifDiscoveryClient类,autodiscovery=newOnvifDiscoveryClient(QUrl(“soap.udp://239.255.255.250:3702”),cb.Build());会有错误:endoffileornoinput:messagetransferinterruptedortimedout(30secmaxrecvdela
- go module的Mac配置和使用
abcnull
#Golanggomodulegolanggoland后端
介绍go1.11后新增的功能,是一个新型的包管理工具,之前的包管理工具govender,godep都是基于GOPATH,vender目录的,modules是在gopath后一套新的包管理方式,也是目前推荐使用的包管理方式本文是在已经配置好了GOPATH的前提下,具体怎么配置GOPATH可以参考网络环境变量配置启用module配置使用module来进行依赖包管理,下面几种方式可以只选用一种,现在官方
- Vite 与 Pinia 的实战应用
码力全開
vue.js前端javascript开发语言htmlPina
目录Vue极速入门第14节:Vue开发工具与生态优化:Vite与Pinia的实战应用引言1.使用Vite提升开发体验:快速启动与热更新1.1什么是Vite?1.2Vite的安装与配置Vite目录结构2.集成Pinia状态管理:轻量级替代Vuex2.1什么是Pinia?2.2Pinia的安装与配置Pina目录结构3.实战案例:设计一个计数器应用3.1需求分析3.2实现步骤3.2.1使用Vite创建项
- 激光线扫相机无2D图像的标定方案
hylreg
数码相机
方案一:基于运动控制平台的标定适用场景:若激光线扫相机安装在可控运动平台(如机械臂、平移台、旋转台)上,且平台的运动精度已知(例如通过编码器或高精度步进电机控制)。步骤:标定物选择:使用具有明确几何特征的三维标定物(如平面、棱柱、球体等),表面需反射激光线。运动轨迹规划:控制平台沿已知方向(如X/Y/Z轴)平移或旋转,记录激光线在标定物上的位置变化。每个运动步长后,获取激光线的三维点云数据。参数优
- Mac 上管理本地 Go 版本
阿狸远翔
macosgolangchrome
在Mac上修改本地Go版本可以通过多种方法实现。以下是几种常见且详细的操作方案:方法一:使用goenv管理多版本(推荐)适用场景:需要频繁切换不同Go版本,适合长期开发者。步骤:安装goenv:#使用Homebrew安装brewinstallgoenv配置环境变量:将以下内容添加到Shell配置文件(如~/.zshrc或~/.bash_profile):exportGOENV_ROOT="$HOM
- springboot开启异步注解功能
白不懂黑的静
spingboot
主要记录内容:在springboot中如何开启异步注解功能,异步注解功能开启后,可以让在调用异步功能时,系统可以自动接着往下走,而不用一直在等待异步功能完成才可以接着走下一步任务。前提:内容时基于springboot实现的。一、service层代码:在service中定义了一个测试异步的代码:在方法上增加@Async注解packagecom.demo.service;importorg.sprin
- springcloud nacos 负载均衡 权重
牛马狗猪猴
springbootspringcloud负载均衡java
springcloudnacos负载均衡权重项目搭建代码在这里https://blog.csdn.net/weixin_45730866/article/details/128930496?spm=1001.2014.3001.5502假设我们consumer-order要调用consumer-user(这个服务启动了两个);不知道怎么在idea启动两个相同的服务可以看看下面这个https://b
- CPU中断机制
万物琴弦光锥之外
操作系统操作系统
CPU的中断机制是操作系统和硬件之间通信的重要方式,用于处理外部事件和内部任务。中断可以分为硬中断(HardwareInterrupts)和软中断(SoftwareInterrupts)。以下是详细的讲解:1.中断的基本概念定义中断:是一种异步事件,它会打断当前正在执行的程序或指令流,使CPU转而去处理特定的中断服务程序(InterruptServiceRoutine,ISR),处理完毕后再返回原
- http://syy7.com/a/25.php,eDrawings
徐子贡
OzsgSFNGIFYxMi4wMCAKSQAAAABCABIjtb5VnQe+x607vhUO0z7QaHk+8A4VPlp42uy9B0BUR9cGPLv33r3bK22XDtKkNwFhAVEREMWGYi8UwR4rtkAsiTGaRGONRmOMxmASjRWNC8bE3hNN1Ig1dkMMKKAI95+yd10wb159k/f7v+//Jdm7x9l7z5w5M/PMmTNn5vZt
- springboot 配置redis
Leaf吧
springbootspringbootredis后端
环境配置springboot3.4redis5.0.14redis准备参考下面文章window下安装redis以及启动redis客户端安装引入依赖org.springframework.bootspring-boot-starter-data-redis该依赖默认引入Lettuce作为默认客户端从SpringBoot2.x版本开始,Redis的默认客户端是Lettuce。如果你没有特别指定客户端,
- Nacos负载均衡
平凡人笔记
平凡人笔记负载均衡java运维
常见的负载均衡策略随机、hash、轮询、权重、最小连接数、最快响应速度适用场景1、在短连接中因为连接快速建立销毁因为数据延时容易造成堆积效应,随机、hash、轮询、权重四种方式大致能够保持整体是均衡的,服务端重启也不会影响整体均衡2、最小连接、最快响应速度是有状态的算法,因为数据延时容易造成堆积效应3、长连接,连接会一直保持,断连后需要重新选择一个新的服务节点,当服务重启后,最终连接数会出现不均衡
- 2024 年 MathorCup 数学应用挑战赛——大数据竞赛 赛道 B:电商品类货量预测及品类分仓规划 思路和代码 持续更新中
2025年数学建模美赛
数学建模2024年大数据第五届MathorCupB题
2024年所有数学建模类比赛的个人思路和代码都会发布到专栏内,会结合最新的chatgpt发布思路,开赛一天后恢复原价99,不代写论文,不回复私信.没有群,只需订阅一次目录问题分析与解决思路问题1:货量预测模型问题2:一品一仓分仓规划问题3:一品多仓分仓规划总结这类大数据竞赛的重点在于构建一个全面的预测和优化模型,通过数据处理、时间序列分析以及运筹优化来完成货量预测和分仓规划。下面是一个解决问题的整
- 从 TCP/IP 演进看按序流与性能
dog250
tcp/ip网络协议网络
前面谈到互联网从早期对等通信模型转入后来内容分发模型后的一系列问题,诸如拥塞,安全等,本文谈谈关于性能的更普遍方面。TCP/IP祖师爷1974年的开山论文AProtocolforPacketNetworkIntercommunication以及随后RFC675,标志着TCP/IP的正式诞生,在此之前还有一个里程碑事件,即RFC33NCP标准化。RFC33解决了分布式通信问题,而RFC675解决了异
- xss靶场搭建
奶酪是小白
xss安全web安全
1.xss靶场源码do0dl3/xss-labs:xss跨站漏洞平台2.将源码下载好后解压放入phpstudy的www下3.启动apache和mysql4.在浏览器中输入127.0.0.1/xss-labs-master进入xss-labs靶场注:xss-labs后续通关教程陆续更新
- 2025年全国CTF夺旗赛-从零基础入门到竞赛,看这一篇就稳了!
白帽安全-黑客4148
网络安全web安全linux密码学CTFpythonddos
基于入门网络安全/黑客打造的:黑客&网络安全入门&进阶学习资源包目录一、CTF简介二、CTF竞赛模式三、CTF各大题型简介四、CTF学习路线4.1、初期1、html+css+js(2-3天)2、apache+php(4-5天)3、mysql(2-3天)4、python(2-3天)5、burpsuite(1-2天)4.2、中期1、SQL注入(7-8天)2、文件上传(7-8天)3、其他漏洞(14-15
- 微信小程序-点餐(美食屋)02开发实践
你我哈
微信小程序微信小程序小程序美食htmlphp
目录概要整体架构流程(一)用户注册与登录(二)菜品浏览与点餐(三)订单管理(四)后台管理部分代码展示1.index.wxml2.list.wxml3.checkout.wxml4.detail.wxml小结优点概要01篇让我们成功搭建开发环境,现在让我们着手开发“美食屋”点餐系统了。下面,我会用PHP和MySQL实现系统核心功能,像用户注册登录、展示和管理菜品,以及处理订单。快一起动手,让“美食屋
- CentOS安装Docker教程
Pseudo-lover563
centosdockerlinux
目录一、前言二、Docker三要素三、安装yum-utils程序1、什么是yum-utils程序2、安装yum-utils程序四、添加yum的Docker镜像五、更新yum数据索引六、安装Docker引擎七、启动Docker服务(开机自启)八、添加阿里镜像加速器编辑1、新建文件夹2、添加加速器3、重新加载服务4、重启Docker九、检查Docker是否安装成功1、版本号查询2、Docker服务状态
- Dockerfile另一种使用普通用户启动的方式
容器云服务
容器云linuxdockerfiledocker
基础镜像的Dockerfile#使用Debian11.9的最小化版本作为基础镜像FROMdebian:11.11#维护者信息LABELmaintainer="caibingsen"#复制自定义的sources.list文件(如果有的话)COPYsources.list/etc/apt/sources.list#创建一个目录来存放JDKRUNmkdir-p/usr/java/jdk1.8.0_191
- 前端新手如何用vite构建小程序中使用的模块(以AES加密模块crypto-js为例)
warmbook
前端前端小程序javascript
如果你只是想简单地把在vite项目中使用的模块引入到小程序中,不妨试试库模式。以crypto-js为例,你需要写两个JS文件:一个是构建脚本,类似于vite.config.js;//build.cjsconst{build}=require('vite'),path=require('path');build({publicDir:false,configFile:false,runtimeCom
- ESC/POS常用打印指令面向对象封装,PHP处理二维码定位,微信小程序蓝牙打印
warmbook
笔记javascript微信小程序蓝牙php
热敏小票/标签打印机,使用ESC/POS指令打印,常用指令封装,适用于GBK编码constPER_MM=8,//每毫米像素数fontSize=12,//每字符像素数gbk=require('./gbk'),//兼容中文的字符转换库,文末附链接/*计算字符串长度(1个中文=2个字符)*/charLen=str=>{letwidth=0;for(leti=0;i{dev.port.write(ESCP
- Rust入门实战 编写Minecraft启动器#4下载资源
首发于Enaium的个人博客首先我们需要添加几个依赖。model={path="../model"}parse={path="../parse"}reqwest={version="0.12",features=["blocking","json"]}file-hashing={version="0.1"}sha1={version="0.10"}reqwest用于发送请求,file-hashin
- 星露谷模组开发教程#3 事件
c#
SMAPI提供了一些事件,比如游戏的内容、显示、输入等事件。这些事件可以让我们在游戏中添加自己的逻辑。这一节我们就来看看如何使用这些事件。注册一个事件在SMAPI中,我们可以通过IModHelper的Events属性来注册事件。比如我们要注册游戏启动事件,可以这样写:publicoverridevoidEntry(IModHelperhelper){helper.Events.GameLoop.G
- 嵌入式Linux之文件IO
Gui林
linuxc++c语言
一、标准IO库1.1打开/关闭文件fopen新建fopen_test.c,写入以下内容:#includeintmain(){/*打开文件函数:FILE*fopen(constchar*__restrict__filename,constchar*__restrict__modes)参数:char*__restrict__filename:字符串表示要打开文件的路径和名称char*__restric
- ORA-12541:TNS:无监听程序(Linux/Centos系统)
立志成为架构师
oracle
没有启动远程服务器的ORACLE监听程序。#切换成oralce用户su-oracle#启动监听lsnrctlstart如果出现ORA-12514错误,请查看我的另外一篇博客。
- centos7最小化安装中使用yum命令报错:14: curl#6 - “Could not resolve host: mirrorlist.centos.org; 未知的错误“
hair请的
网络linuxcentosyum
目录说明报错内容报错原因解决方案方案一方案二说明Linux虚拟机软件选择最小化安装网卡ens33报错内容已加载插件:fastestmirrorLoadingmirrorspeedsfromcachedhostfileCouldnotretrievemirrorlisthttp://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=
- linux如何修改密码,要在CentOS 7系统中修改密码
远方 hi
linux运维服务器
要在CentOS7系统中修改密码,你可以按照以下步骤操作:步骤1:登录到系统在登录提示符localhostlogin:后输入你的用户名。输入密码并按回车键。步骤2:修改密码登录后,使用passwd命令来修改密码:passwd系统会提示你输入新密码。输入新密码并确认:输入新密码并按回车键。再次输入新密码以确认。示例假设你想将密码从旧密码改为新密码,可以这样做:$passwdChangingpassw
- yum安装报错“Could not resolve host: mirrorlist.centos.org; 未知的错误“
与太
centoslinux运维
问题:yuminstall-ynginx已加载插件:fastestmirror,langpacksLoadingmirrorspeedsfromcachedhostfileCouldnotretrievemirrorlisthttp://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stockerrorwas14:curl#6
- java工厂模式
3213213333332132
java抽象工厂
工厂模式有
1、工厂方法
2、抽象工厂方法。
下面我的实现是抽象工厂方法,
给所有具体的产品类定一个通用的接口。
package 工厂模式;
/**
* 航天飞行接口
*
* @Description
* @author FuJianyong
* 2015-7-14下午02:42:05
*/
public interface SpaceF
- nginx频率限制+python测试
ronin47
nginx 频率 python
部分内容参考:http://www.abc3210.com/2013/web_04/82.shtml
首先说一下遇到这个问题是因为网站被攻击,阿里云报警,想到要限制一下访问频率,而不是限制ip(限制ip的方案稍后给出)。nginx连接资源被吃空返回状态码是502,添加本方案限制后返回599,与正常状态码区别开。步骤如下:
- java线程和线程池的使用
dyy_gusi
ThreadPoolthreadRunnabletimer
java线程和线程池
一、创建多线程的方式
java多线程很常见,如何使用多线程,如何创建线程,java中有两种方式,第一种是让自己的类实现Runnable接口,第二种是让自己的类继承Thread类。其实Thread类自己也是实现了Runnable接口。具体使用实例如下:
1、通过实现Runnable接口方式 1 2
- Linux
171815164
linux
ubuntu kernel
http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.1.2-unstable/
安卓sdk代理
mirrors.neusoft.edu.cn 80
输入法和jdk
sudo apt-get install fcitx
su
- Tomcat JDBC Connection Pool
g21121
Connection
Tomcat7 抛弃了以往的DBCP 采用了新的Tomcat Jdbc Pool 作为数据库连接组件,事实上DBCP已经被Hibernate 所抛弃,因为他存在很多问题,诸如:更新缓慢,bug较多,编译问题,代码复杂等等。
Tomcat Jdbc P
- 敲代码的一点想法
永夜-极光
java随笔感想
入门学习java编程已经半年了,一路敲代码下来,现在也才1w+行代码量,也就菜鸟水准吧,但是在整个学习过程中,我一直在想,为什么很多培训老师,网上的文章都是要我们背一些代码?比如学习Arraylist的时候,教师就让我们先参考源代码写一遍,然
- jvm指令集
程序员是怎么炼成的
jvm 指令集
转自:http://blog.csdn.net/hudashi/article/details/7062675#comments
将值推送至栈顶时 const ldc push load指令
const系列
该系列命令主要负责把简单的数值类型送到栈顶。(从常量池或者局部变量push到栈顶时均使用)
0x02 &nbs
- Oracle字符集的查看查询和Oracle字符集的设置修改
aijuans
oracle
本文主要讨论以下几个部分:如何查看查询oracle字符集、 修改设置字符集以及常见的oracle utf8字符集和oracle exp 字符集问题。
一、什么是Oracle字符集
Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系。ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据。它使数据库工具,错误消息,排序次序,日期,时间,货
- png在Ie6下透明度处理方法
antonyup_2006
css浏览器FirebugIE
由于之前到深圳现场支撑上线,当时为了解决个控件下载,我机器上的IE8老报个错,不得以把ie8卸载掉,换个Ie6,问题解决了,今天出差回来,用ie6登入另一个正在开发的系统,遇到了Png图片的问题,当然升级到ie8(ie8自带的开发人员工具调试前端页面JS之类的还是比较方便的,和FireBug一样,呵呵),这个问题就解决了,但稍微做了下这个问题的处理。
我们知道PNG是图像文件存储格式,查询资
- 表查询常用命令高级查询方法(二)
百合不是茶
oracle分页查询分组查询联合查询
----------------------------------------------------分组查询 group by having --平均工资和最高工资 select avg(sal)平均工资,max(sal) from emp ; --每个部门的平均工资和最高工资
- uploadify3.1版本参数使用详解
bijian1013
JavaScriptuploadify3.1
使用:
绑定的界面元素<input id='gallery'type='file'/>$("#gallery").uploadify({设置参数,参数如下});
设置的属性:
id: jQuery(this).attr('id'),//绑定的input的ID
langFile: 'http://ww
- 精通Oracle10编程SQL(17)使用ORACLE系统包
bijian1013
oracle数据库plsql
/*
*使用ORACLE系统包
*/
--1.DBMS_OUTPUT
--ENABLE:用于激活过程PUT,PUT_LINE,NEW_LINE,GET_LINE和GET_LINES的调用
--语法:DBMS_OUTPUT.enable(buffer_size in integer default 20000);
--DISABLE:用于禁止对过程PUT,PUT_LINE,NEW
- 【JVM一】JVM垃圾回收日志
bit1129
垃圾回收
将JVM垃圾回收的日志记录下来,对于分析垃圾回收的运行状态,进而调整内存分配(年轻代,老年代,永久代的内存分配)等是很有意义的。JVM与垃圾回收日志相关的参数包括:
-XX:+PrintGC
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-XX:+PrintGCDateStamps
-Xloggc
-XX:+PrintGC
通
- Toast使用
白糖_
toast
Android中的Toast是一种简易的消息提示框,toast提示框不能被用户点击,toast会根据用户设置的显示时间后自动消失。
创建Toast
两个方法创建Toast
makeText(Context context, int resId, int duration)
参数:context是toast显示在
- angular.identity
boyitech
AngularJSAngularJS API
angular.identiy 描述: 返回它第一参数的函数. 此函数多用于函数是编程. 使用方法: angular.identity(value); 参数详解: Param Type Details value
*
to be returned. 返回值: 传入的value 实例代码:
<!DOCTYPE HTML>
- java-两整数相除,求循环节
bylijinnan
java
import java.util.ArrayList;
import java.util.List;
public class CircleDigitsInDivision {
/**
* 题目:求循环节,若整除则返回NULL,否则返回char*指向循环节。先写思路。函数原型:char*get_circle_digits(unsigned k,unsigned j)
- Java 日期 周 年
Chen.H
javaC++cC#
/**
* java日期操作(月末、周末等的日期操作)
*
* @author
*
*/
public class DateUtil {
/** */
/**
* 取得某天相加(减)後的那一天
*
* @param date
* @param num
*
- [高考与专业]欢迎广大高中毕业生加入自动控制与计算机应用专业
comsci
计算机
不知道现在的高校还设置这个宽口径专业没有,自动控制与计算机应用专业,我就是这个专业毕业的,这个专业的课程非常多,既要学习自动控制方面的课程,也要学习计算机专业的课程,对数学也要求比较高.....如果有这个专业,欢迎大家报考...毕业出来之后,就业的途径非常广.....
以后
- 分层查询(Hierarchical Queries)
daizj
oracle递归查询层次查询
Hierarchical Queries
If a table contains hierarchical data, then you can select rows in a hierarchical order using the hierarchical query clause:
hierarchical_query_clause::=
start with condi
- 数据迁移
daysinsun
数据迁移
最近公司在重构一个医疗系统,原来的系统是两个.Net系统,现需要重构到java中。数据库分别为SQL Server和Mysql,现需要将数据库统一为Hana数据库,发现了几个问题,但最后通过努力都解决了。
1、原本通过Hana的数据迁移工具把数据是可以迁移过去的,在MySQl里面的字段为TEXT类型的到Hana里面就存储不了了,最后不得不更改为clob。
2、在数据插入的时候有些字段特别长
- C语言学习二进制的表示示例
dcj3sjt126com
cbasic
进制的表示示例
# include <stdio.h>
int main(void)
{
int i = 0x32C;
printf("i = %d\n", i);
/*
printf的用法
%d表示以十进制输出
%x或%X表示以十六进制的输出
%o表示以八进制输出
*/
return 0;
}
- NsTimer 和 UITableViewCell 之间的控制
dcj3sjt126com
ios
情况是这样的:
一个UITableView, 每个Cell的内容是我自定义的 viewA viewA上面有很多的动画, 我需要添加NSTimer来做动画, 由于TableView的复用机制, 我添加的动画会不断开启, 没有停止, 动画会执行越来越多.
解决办法:
在配置cell的时候开始动画, 然后在cell结束显示的时候停止动画
查找cell结束显示的代理
- MySql中case when then 的使用
fanxiaolong
casewhenthenend
select "主键", "项目编号", "项目名称","项目创建时间", "项目状态","部门名称","创建人"
union
(select
pp.id as "主键",
pp.project_number as &
- Ehcache(01)——简介、基本操作
234390216
cacheehcache简介CacheManagercrud
Ehcache简介
目录
1 CacheManager
1.1 构造方法构建
1.2 静态方法构建
2 Cache
2.1&
- 最容易懂的javascript闭包学习入门
jackyrong
JavaScript
http://www.ruanyifeng.com/blog/2009/08/learning_javascript_closures.html
闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。
下面就是我的学习笔记,对于Javascript初学者应该是很有用的。
一、变量的作用域
要理解闭包,首先必须理解Javascript特殊
- 提升网站转化率的四步优化方案
php教程分享
数据结构PHP数据挖掘Google活动
网站开发完成后,我们在进行网站优化最关键的问题就是如何提高整体的转化率,这也是营销策略里最最重要的方面之一,并且也是网站综合运营实例的结果。文中分享了四大优化策略:调查、研究、优化、评估,这四大策略可以很好地帮助用户设计出高效的优化方案。
PHP开发的网站优化一个网站最关键和棘手的是,如何提高整体的转化率,这是任何营销策略里最重要的方面之一,而提升网站转化率是网站综合运营实力的结果。今天,我就分
- web开发里什么是HTML5的WebSocket?
naruto1990
Webhtml5浏览器socket
当前火起来的HTML5语言里面,很多学者们都还没有完全了解这语言的效果情况,我最喜欢的Web开发技术就是正迅速变得流行的 WebSocket API。WebSocket 提供了一个受欢迎的技术,以替代我们过去几年一直在用的Ajax技术。这个新的API提供了一个方法,从客户端使用简单的语法有效地推动消息到服务器。让我们看一看6个HTML5教程介绍里 的 WebSocket API:它可用于客户端、服
- Socket初步编程——简单实现群聊
Everyday都不同
socket网络编程初步认识
初次接触到socket网络编程,也参考了网络上众前辈的文章。尝试自己也写了一下,记录下过程吧:
服务端:(接收客户端消息并把它们打印出来)
public class SocketServer {
private List<Socket> socketList = new ArrayList<Socket>();
public s
- 面试:Hashtable与HashMap的区别(结合线程)
toknowme
昨天去了某钱公司面试,面试过程中被问道
Hashtable与HashMap的区别?当时就是回答了一点,Hashtable是线程安全的,HashMap是线程不安全的,说白了,就是Hashtable是的同步的,HashMap不是同步的,需要额外的处理一下。
今天就动手写了一个例子,直接看代码吧
package com.learn.lesson001;
import java
- MVC设计模式的总结
xp9802
设计模式mvc框架IOC
随着Web应用的商业逻辑包含逐渐复杂的公式分析计算、决策支持等,使客户机越
来越不堪重负,因此将系统的商业分离出来。单独形成一部分,这样三层结构产生了。
其中‘层’是逻辑上的划分。
三层体系结构是将整个系统划分为如图2.1所示的结构[3]
(1)表现层(Presentation layer):包含表示代码、用户交互GUI、数据验证。
该层用于向客户端用户提供GUI交互,它允许用户