学习方法
杰锋
这个作者很懒,什么都没留下…
展开
-
POI EXCEL(.xls/.xlsx)转CSV格式
难点在于Date日期类型的转化,需要采用。.xlsx 转 csv。.xls 转 csv。原创 2023-01-02 20:30:39 · 1807 阅读 · 1 评论 -
高并发超卖问题简要解决方案
1、传统通过数据库保证不超卖 事务+行锁并不是解决超卖的方案,只是保障数据的统一性。传统通过回滚事务的方式防止某些用户多卖的情况。 采用新建一个防重表+事务的方式防止超卖。同一事务中,采用如 用户ID+商品ID的方式作为防重表唯一索引字段的数值,保障超卖时事务的统一回滚。字段名 字段类型 字段说明 id 长整型 主键 code 字符串(唯一索引) 防重码 //事务开始Insert into 防重表(code) ...原创 2022-05-05 01:51:17 · 3822 阅读 · 0 评论 -
秒杀活动的防刷限流技术
技术要点:* 掌握验证码生成与验证技术* 掌握限流原理与实现* 掌握防黄牛技术验证码实现:* 验证码插件或者工具类* 分布式验证放在redis中限流方案:* 令牌桶算法:定时器每秒往桶里放置N个令牌* 接口维度引入令牌桶算法* 集群限流:依赖redis或其他的中间件技术做统一计数器,往往或产生性能瓶颈* 单机限流:负载均衡的前提下单机平均限流效果更好限流实现:// 下单业务控制类private RateLimiter orderCreateRat原创 2022-04-19 02:43:43 · 976 阅读 · 0 评论 -
秒杀活动的流量削峰技术
技术要点:* 掌握秒杀令牌的原理和使用方式* 掌握秒杀大闸的原理和使用方式* 掌握队列泄洪的原理是使用方式缺陷原因:* 秒杀下单接口会被脚本不停的刷* 秒杀验证逻辑和秒杀下单接口强关联,代码冗余度高* 秒杀验证逻辑复杂,对交易系统产生无关联负载秒杀令牌原理:* 秒杀接口需要依靠令牌才能进入* 秒杀的令牌由秒杀活动模块负责生成* 秒杀活动模块对秒杀令牌生产全权处理,逻辑收口* 秒杀下单前需要先获得秒杀令牌秒杀令牌实现:1、分开验证(活动、用户等相关校验)原创 2022-04-19 01:57:17 · 473 阅读 · 0 评论 -
下单操作中orderId的生成讨论(分布式环境)
1、由于orderId是业务主键,一般情况想到会在业务逻辑层生成,但是若在分布式环境,有可能存在网关层断连重新请求被分配到另外的业务逻辑层从而生产新主键,故想法存在不足;2、在客户APP层生成,理论上可行,但是可能造成不可控安全风险,故在APP层生成不可取;3、采用OAuth2.0授权模式,有APP层生成一个code,传递到达业务逻辑层,有业务逻辑层查询redis获取code和orderId的对应关系,若没有生成orderId并插入redis,以便分布式部署请求中的查询和使用,并且为了redi...原创 2021-11-05 17:07:39 · 2355 阅读 · 0 评论 -
关于数据表采用自增主键和业务主键的选择
1、旧系统或者单部署系统,一般都采用自增主键,主要是便捷性考虑。优缺点如下:优点:自增长字段往往用integer bigint类型,最多占8个字节。索引与外键 所占用的空间连带减少,增删改查 效率高。业务变化,不影响,不需要更新主键。缺点:无法转移数据库,比如把表中的一批数据 转移 或 附带到 另一个表中,那么由于是自增长字段,那么会导致无法转移,因为另外一个表可能已经存在部分数据,会造成主键冲突。自增长字段的缺陷。业务数据的完整性,无法保证。2、对于高并发业务型数据表,尤其是分布式部署架构,原创 2021-11-05 16:28:06 · 1295 阅读 · 0 评论 -
微服务高可用设计手段
1、无状态化:服务必须冗余,不能单部署,网关、业务逻辑层、DB等都需要多点,请求到达网关一网关二处理都完全一致;2、负载均衡:某业务中断后的请求转发和某业务重启后的请求恢复处理,同个请求执行多次结果都是完全对等的,理解为银行转款的前后一致性,请求幂和业务幂的区分;3、异步化设计:异步化为提升吞吐量和减低错误率,超时机制为减低请求压力,超时次数一般为3次;4、服务限流降级熔断:如大流量突发时扩容加硬件等来不及的情况,而此时更需处理好限流降级熔断等措施,需要有个统一的平台化服务请求控制;...原创 2021-10-30 21:39:42 · 264 阅读 · 0 评论 -
传统企业实际开展推广任务的方向建议
1、腾讯体系和私域流量搭建:腾讯生态包含公众号、小程序、视频号,最恐怖是三端都是互通引流的闭环,由于用户基数的庞大,建议可以作为主要信息进出的渠道之一。算法时代下,内容决定企业增长力,而微信生态的私域流量内容,成为受信流量更加有利于提高成交行为。作为推广传播基石和直观形象,建议搭建垂直的阵列新媒体体系。公众号职责文案和品牌、小程序用于执行行为的落地(如推广和会员权益操作等)、视频号提供品牌体现和碎片时间消耗,所以文案和视频脚本需要找人设计。最好前期找个可靠的本地团队外包并形成阵列,后续转为内容的自身生原创 2021-08-27 21:58:07 · 157 阅读 · 0 评论 -
IDEA安装使用和SVN配置
IDEA安装和使用:https://blog.csdn.net/linshaolun0701/article/details/90287220IntelliJ IDEA 下的svn配置及使用的非常详细的图文总结:https://blog.csdn.net/WI_232995/article/details/80593927原创 2020-10-16 13:31:43 · 284 阅读 · 0 评论 -
《G4Studio开发指南》下载/更新专用页面及读者互动交流贴
说明:此页面提供G4Studio平台产品文档更新。您可以记住本页链接地址来获取最新的平台产品文档。http://user.qzone.qq.com/307916217/blog/1318988569 《G4Studio开发指南》 编撰中,即将提供下载。 =============================================================转载 2012-07-21 14:14:17 · 1430 阅读 · 1 评论 -
SQL注入全接触
超级推荐:http://blog.csdn.net/luisant/article/details/1902493转载 2012-05-23 01:12:05 · 313 阅读 · 0 评论 -
NoSQL 数据建模技术
顶3 踩本文由 酷壳coolshell 译自墙外文章“NoSQL Data Modeling Techniques”。这篇文章看完之后,你可能会对NoSQL的数据结构会有些感觉。我的感觉是,关系型数据库想把一致性,完整性,索引,CRUD都干 好,NoSQL只干某一种事,但是牺牲了很多别的东西。总体来说,我觉得NoSQL更适合做Cache。下面是正文——NoSQL转载 2012-05-23 00:47:52 · 657 阅读 · 0 评论 -
时间管理课程内容分享
什么是时间管理时间管理(Time Management)就是用技巧、技术和工具帮助人们完成工作,实现目标。时间管理并不是要把所有事情做完,而是更有效的运用时间。时间管理的目的除了 要决定你该做些什么事情之外,另一个很重要的目的也是决定什么事情不应该做;时间管理不是完全的掌控,而是降低变动性。时间管理最重要的功能是透过事先的 规划,做为一种提醒与指引。时间管理不为了让你更累,而是为了更轻松。转载 2012-05-27 23:01:13 · 931 阅读 · 0 评论 -
GC工作原理
Java的内存管理实际上就是对象的管理,其中包括对象的分配和释 放。 对于程序员来说,分配对象使用new关键字;释放对象时,只要将对象所有引用赋值为null,让程序不能够再访问到这个对象,我们 称该对象为"不可达的".GC将负责回收所有"不可达"对象的内存空间。 对于GC来说,当程序员创建对象时,GC就开始监控这个对象的 地址、大小以及使用情况。通常,GC采用有向图的方式记录和转载 2013-08-19 00:33:45 · 500 阅读 · 0 评论 -
ext-2.3.0+CKEditor 3.0.1+ckfinder_asp_1.4配置详解
一、去http://cksource.com/下载这两个东西二、去http://www.extjs.com/下载ext-2.3.0三、将ext-2.3.0、CKEditor 3.0.1、ckfinder_asp_1.4,取出解压后的文件夹,真接放到站点根目录,目录结构为:WEBROOT|--ckeditor|--finder|--ext-2.3.0|--js|--c转载 2012-05-27 21:02:15 · 687 阅读 · 0 评论 -
代码审查最佳实践
代码审查可以帮助提高代码质量,避免由于代码习惯而造成的 bug。下面列出的这些要点因该可以作为大部分代码审查的指导,如果是 Java 应用的话,这些建议应该被视作最佳实践。文档1. Javadoc 应该在每一个类和方法中添加。2. 如果是修复某个 bug,应该添加 bug ID。3. 走捷径的方法或者复杂的逻辑要有解释。4. 如果代码会被公开,每个文件头都要标注版权信息。转载 2012-09-04 00:08:36 · 357 阅读 · 0 评论 -
你需要知道的 16 个 Linux 服务器监控命令
如果你想知道你的服务器正在做干什么,你就需要了解一些基本的命令,一旦你精通了这些命令,那你就是一个 专业的 Linux 系统管理员。有些 Linux 发行版会提供 GUI 程序来进行系统的监控,例如 SUSE Linux 就有一个非常棒而且专业的工具 YaST,KDE 的 KDE System Guard 同样很出色。当然,要使用这些工具,你必须在服务器跟前进行操作,而且这些 GUI 的程序占转载 2012-09-06 01:02:34 · 326 阅读 · 0 评论 -
谷歌三大核心技术
谷歌三大核心技术(一)Google File System中文版:http://www.open-open.com/lib/view/open1328763454608.html 谷歌三大核心技术(二)Google MapReduce中文版:http://www.open-open.com/lib/view/open1328763069203.html 谷歌三大核心技术(三原创 2013-08-23 13:48:39 · 3745 阅读 · 0 评论 -
HTTP协议详解(真的很经典)
引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of转载 2013-08-17 19:34:57 · 591 阅读 · 0 评论 -
【java并发】基于JUC CAS原理,自己实现简单独占锁
synchronized的基本原理回顾在jvm内部,所有对象都含有单一的锁,jvm负责跟踪监视被加锁次数,叫做对象监视器。当线程第一次给对象加锁的时候,计数器会加1,离开时会减1.同样任务是可重入的,每次重入也是加1,离开减1. synchronized是独占式的,拿到对象锁才能继续,没有获取到锁就会阻塞。JUC CAS乐观锁基本原理synchronized就是一种独占锁,会导转载 2013-08-19 00:21:49 · 874 阅读 · 0 评论 -
TCP与UDP的区别,以及它们各自的定义
TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂,我们这里只做简单、形象的介绍,你只要做到能够理解这个过程即可。我们来看看这三次对话的简单过程:主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?”,这是第一次对话;主转载 2013-08-19 00:52:40 · 469 阅读 · 0 评论 -
从数据整理到telnet服务器再到was命令部署总结
使用到的工具:DB2控制中心,DbVisualizer,UltraEditPortable,flashfxp,SecureCRT 1. 对DB2的表结构等的导出可以使用DB2的命令完成,但是本人比较懒惰,直接使用DB2控制中心完成,右击表,选择“生成DDL”如图: 2. 而对于数据库初始数据的导出,可以使用DbVisualizer选择需要的逐张导出数据,但是由于DbVi原创 2011-06-14 01:18:00 · 1076 阅读 · 0 评论 -
Java多线程编程总结
Java多线程编程总结 下面是Java线程系列博文的一个编目: Java线程:概念与原理Java线程:创建与启动Java线程:线程栈模型与线程的变量Java线程:线程状态的转换Java线程:线程的同步与锁Java线程:线程的交互Java线程:线程的调度-休眠Java线程:线程的调度-优先级Java线程:线程的调度-让步Java线程:线程的调度-合并Java线程:线程的调度-守护线程Java线程:线程的同步-同步方法Java线程:线程的同步-同步块Java线程:并发协作-生产者消费者模型Java线程:并发协作转载 2010-08-09 00:29:00 · 1541 阅读 · 1 评论 -
产品经理能力架构图
转载 2011-12-24 16:29:51 · 1334 阅读 · 0 评论 -
Java中处理大数据量时产生OOM(Out of Memory)异常的一点经验
可能使用了数组,或者是ArrayList和Vector。一般来说因为数组要分配连续的内存空间,所以容易产生OOM错误。 但是,可以尝试使用LinkedList等集合。转载 2011-12-14 02:20:53 · 3226 阅读 · 0 评论 -
30岁前男人需要完成的事
1,事业永远第一 虽然金钱不是万能的,但没有钱是万万不能的,虽然这句话很俗,但绝对有道理,所以30岁之前,请把你大部分精力放在你的事业上.2,别把钱看得太重 不要抱怨自己现在工资低,银行存款4位数以下,看不到前途,现在要做的就是努力学习,即使你文凭再高,怎么把理论运用到实践还是需要一个很长的锻炼过程,社会永远是一所最博大的大学,它让你学到的知识远比你在学校学到的重要得多,所以同样,你也别太介意学历低.30岁之前靠自己能力买车买房的人还是极少.3,学会体谅父母 别嫌他们唠叨,等你为人父了你就知道可怜天下转载 2010-08-16 11:13:00 · 280 阅读 · 0 评论 -
web.xml的细节
<br />web.xml的元素 <br />首先注意 xml是大小写敏感的<br />1、 web.xml的头和根元素<br />必须以一个XML头开始。这个头声明可以使用的XML版本并给出文件的字符编码。 <br />DOCYTPE声明必须立即出现在此头之后。这个声明告诉服务器适用的servlet规范的版本(如2.2或2.3)并指定管理此文件其余部分内容的语法的DTD(Document Type Definition,文档类型定义)。 <br />所有部署描述符文件的顶层(根)元素为web-app。<b转载 2010-08-10 00:29:00 · 286 阅读 · 0 评论 -
session详解
一、术语session<br /><br />在我的经验里,session这个词被滥用的程度大概仅次于transaction,更加有趣的是transaction与session在某些语境下的含义是相同的。 <br /> session,中文经常翻译为会话,其本来的含义是指有始有终的一系列动作/消息,比如打电话时从拿起电话拨号到挂断电话这中间的一系列过程可以称之为一个 session.有时候我们可以看到这样的话“在一个浏览器会话期间,……”,这里的会话一词用的就是其本义,是指从一个浏览器窗口打开到关转载 2010-08-10 00:28:00 · 266 阅读 · 0 评论 -
无论你每个月工资多少,请将其分为五份。(值得看)
第一份,用来做生活费。 第二份,用来交朋友,扩大你的人际圈。 你的电话费可以用掉100元。每个月可以请客两次,每次150元。请谁呢?记住,请比你有思想的人,比你更有钱的人,和你需要感激的人。 每个月,坚持请客,一年下来,你的朋友圈应该已经为你产生价值了,你的声望、影响力、附加价值正在提升,形象又好,又大方。 第三份,用来学习,每个月可以有50元—100元用来买书。 钱不多,买的书就要认真阅读,学会学了就用的精神。每一本书,看完后,就把它变成自己的语言讲给别人听,与人分享可以提高你转载 2010-08-09 18:37:00 · 1018 阅读 · 4 评论 -
18个Java开源CMS系统一览
1.InfoGlueinfoglue是一个高级的、可扩展的、健壮的内容管理系统,完全用Java开发。重要的功能包括完全支持多语言,站点之间良好的重用,以及广泛的集成能力。该项目主页: http://www.infoglue.org2.MagnoliaMagnolia是一个开源基于Java的Web内容管理系统(CMS) ,构建在Java内容知识库标准(JSR-170).Magnolia支持包括英语,中文在内的14种语言,它支持本地搜索,基于XML的导入/导出,跨浏览器的文本编辑器,一个简易的War文件可部署到转载 2010-08-10 00:39:00 · 687 阅读 · 0 评论 -
一位软件工程师的6年工作总结
“又是一年毕业时”,看到一批批学子离开人生的象牙塔,走上各自的工作岗位;想想自己也曾经意气风发、踌躇满志,不觉感叹万千……本文是自己工作6年的经历沉淀或者经验提炼,希望对所有的软件工程师们有所帮助,早日实现自己的人生目标。本文主要是关于软件开发人员如何提高自己的软件专业技术方面的具体建议,前面几点旨在确定大的方向,算是废话吧。 谨以此文献给那个自己为你奉献3年青春与激情的开发团队。转载 2010-05-26 14:26:00 · 635 阅读 · 2 评论 -
马士兵_JAVA自学之路
JAVA自学之路 一:学会选择 为了就业,不少同学参加各种各样的培训。 决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机、嵌入式、游戏、3G、测试等。 那么究竟应该选择什么方向呢? 我的意见是,不要太过相信各种培训机构或是抢手文章的说法(包括我),当你要走向社会的时候,就不要再把自己当成学生,不要把自己的将来交给别人,学会运用自己的眼睛去观察,去了解这个世界吧。 每个培训机构转载 2009-08-04 09:49:00 · 381 阅读 · 1 评论 -
Java程序员应该掌握的10项基本技能
1、语法:必须比较熟悉,在写代码的时候IDE的编辑器对某一行报错应该能够根据报错信息知道是什么样的语法错误并且知道任何修正。2、命令:必须熟悉JDK带的一些常用命令及其常用选项,命令至少需要熟悉:appletviewer、 HtmlConverter、jar、 java、javac、javadoc、javap、javaw、native2ascii、serialver,如果这些命令你没有转载 2009-08-04 09:51:00 · 464 阅读 · 0 评论 -
提问的智慧
内容译文 弃权申明 引言 提问前 提问时 仔细挑选论坛 面向新手的网页论坛和IRC通常响应最快 第二步,使用项目邮件列表 使用明确而有意义的主题 使之更易回复 使用清晰、语法与拼写正确的语句 使用易懂的格式发送问题 描述问题应准确且有内容 多不等于准确 别动辄声称找到臭虫 低声下气不能代替自己应做之事 描述问题症状而不是猜测 按时间先后罗列问题症状 描述目的而不是步骤 别要求私下回复 问题转载 2009-08-04 09:47:00 · 555 阅读 · 0 评论 -
快速掌握一个语言最常用的50%
现在的开发工作要求我们能够快速掌握一门语言。一般来说应对这种挑战有两种态度:其一,粗粗看看语法,就撸起袖子开干,边查Google边学习;其二是花很多时间完整地把整个语言学习一遍,做到胸有成竹,然后再开始做实际工作。然而这两种方法都有弊病。第二种方法的问题当然很明显,不仅浪费了时间,偏离了目标,而且学习效率不高。因为没有实际问题驱动的语言学习通常是不牢固不深入的。有的人学着学着成了语言专家,反而忘了转载 2009-08-04 09:50:00 · 319 阅读 · 0 评论 -
走过,路过,不要错过!经典语录全集!!!
1 我的快乐都是微小的事情。 2 任何一件事情,只要心甘情愿,总是能够变得简单。 3 容易伤害别人和自己的,总是对距离的边缘模糊不清的人。 4 渴望占有愈多而愈脆弱。 5 没有欲望只能说是麻木不仁。 6 短暂的瞬间,漫长的永远。 7 鸟的翅膀在空气里振动。那是一种喧嚣而凛冽的,充满了恐惧的声音。一种不确定的归宿的流动。 8 人的寂寞,有时候很难用语言表达。 9 总是需要一些温暖。哪怕是一点点自以为是的纪念。 10 感情转载 2010-10-15 12:57:00 · 1603 阅读 · 0 评论 -
优化网站速度的几种方式
<br />在业界有篇很经典的文章,来源于yahoo的开发者社区,它讲述的是如果优化自己的网站的速度,包括从服务器端到客户端。这篇文章影响了很多人,原文可以参照这里:Best Practices for Speeding Up Your Web Site<br />而本文只是用一种比较通俗的语言来阐述那几种方式,以及如何来优化自己的博客或网站。<br /> <br />1:减少自己网站的http请求次数<br />在现在的网站已经不是简单的文字,这其中还包括更多更为丰富的元素。这样理所当然的增加了服务端与客转载 2010-10-21 23:38:00 · 492 阅读 · 0 评论 -
使用.bat文件运行Java程序的一个示例
@echo offset TOOL_ROOT=%cd%set CLASSPATH=%CLASSPATH%;%TOOL_ROOT%/jml-1.0b3.jar;%TOOL_ROOT%/cindy.jar;%TOOL_ROOT%/commons-logging.jarjavac MsnManager.javajava MsnManagerpause转载 2011-12-14 01:53:27 · 710 阅读 · 0 评论 -
十三个经典算法研究与总结、目录+索引 .
十三个经典算法研究与总结、目录+索引作者:July。时间:二零一零年十二月末-二零一一年四月初。微博:http://weibo.com/julyweibo。出处:http://blog.csdn.net/v_JULY_v。声明:版权所有,侵权定究。-------------------------------------------------- 前言转载 2011-12-02 01:35:33 · 642 阅读 · 0 评论 -
横空出世,席卷互联网--评微软等公司数据结构和算法面试100题
横空出世,席卷互联网 ---评微软数据结构+算法面试100题作者:July。时间:2010年10月-11月。版权所有,侵权必究。出处:http://blog.csdn.net/v_JULY_v。说明:本文原题为:“横空出世,席卷Csdn [评微软等公司数据结构+算法面试100题]”,但后来此微软100题(加上后续的80道,共计18转载 2011-12-02 01:12:53 · 1345 阅读 · 0 评论