从这条开始涉及泛型相关的点. 从JDK5开始Java新增了“泛型”新特性,例如:List<String>,在这之前则只有List不会限定类型. 如今的JDK版本中还是可以写原生类型,但这会带来隐藏的不安全问题.如果在声明一个列表变量时不使用泛型而使用原生类型,如下: public class Main { public static void main(String[] args) throws Exception{ List list = new ArrayList(); list.add(…
先看一个栗子,看看能不能找出来里面的错误: /** * 请不要在新代码中使用原生态类型 * @author weishiyao * */ public class Test { public static void main(String[] args) { List<String> strings = new ArrayList<>(); unsafeAdd(strings, new Integer(42)); String string = strings.get(0); Sy…
泛型类和泛型接口 声明一个或者多个类型参数的类或者接口. 为什么不要在新代码中使用原生态类型 原生态类型,即泛型不带参数的类型 如List的list,list就是其原生态类型 1.使用原生态类型,插入数据时,IDE会绕过编译,从将错误升级成运行时错误.而此时如果你写的代码已经离原生态类型很远,那么错误将很难调试. 如: private final Collection stamps = ...; stamps.add(new Coin(...)); 我们知道尝试取出这个类型时才会显示错误 for…
Flask是一个用于Web应用程序的轻量级Python框架,它提供了URL路由和页面呈现的基础知识. Flask被称为“微”框架,因为它不直接提供表单验证,数据库抽象,身份验证等功能.这些功能由称为Flask 扩展的特殊Python包提供.扩展程序与Flask无缝集成,因此它们看起来好像是Flask本身的一部分.例如,Flask不提供页面模板引擎,但默认情况下安装Flask包含Jinja模板引擎.为方便起见,我们通常将这些默认值称为Flask的一部分. 在本教程中,您将创建一个简单的Flask应…
在微信浏览器中浏览页面时,在当前页面中当我们将页面往下滚动到某一个位置时,可能我们就会点击某个链接而页面跳转到了另外一个页面,而当我们又返回到上一个页面时我们会发现那个页面还停留在我们之前浏览的位置,很方便我们接着往下浏览页面上其他的信息,这种效果大大提升了用户的体验度,提升了网站的逼格.今天,我就把实现这种效果的原理和代码分享给大家,方便大家的开发使用. 原理 1.用户滚动页面时,记录滚动条距离页面顶部的距离scrollTop: 2.将记录的值保存到cookie: 3.在返回到上一页时,再将保…
平时,我们制作SSRS Report的方法主要有两种:使用Query或RDP.如果需要为报表传递参数,就要在代码中为报表参数赋值,然后在代码中调用报表.下面我总结下这两种报表在代码中传参和调用的方式: 1.使用Query作为报表数据源 1.1.Dynamic Filters属性 在VS中,需要注意Report DataSource的Dynamic Filters属性. 1.1.1.如果Dynamic Filters属性为True的话,会在Report Parameter中生成一个叫做DS_Dyn…
Design Library出来已经快有一个月了,当时大概看了一下介绍这个新版本变化的译文,内容不多,给我印象最深的就是Percent lib.AppBarLayout 和NavigationView的变化,当然还有Design Lib的一些控件内部实现的变化没有介绍,从而使得在使用新版本的控件时候难免因为版本的不同会发生一些异常,而本人正好在上个星期对一个项目换库时发现了这个问题,什么问题呢? NavigationView使用注意的问题 就是NavigationView的内部实现发生了改变,它…
Design Library出来已经快有一个月了,当时大概看了一下介绍这个新版本变化的译文,内容不多,给我印象最深的就是Percent lib.AppBarLayout 和NavigationView的变化,当然还有Design Lib的一些控件内部实现的变化没有介绍,从而使得在使用新版本的控件时候难免因为版本的不同会发生一些异常,而本人正好在上个星期对一个项目换库时发现了这个问题,什么问题呢? NavigationView使用注意的问题 就是NavigationView的内部实现发生了改变,它…
转自 优秀程序员必备的23条好习惯 编程是一项聪明人玩的游戏,它既是对智力的考验,也是对习惯的考验,智力的好坏取决于父母的基因,人们无从左右,但习惯的好坏却是可以不断培养.一项由美国芝加哥大学国家研究组织进行的综合社会调查,公布了“十大最痛苦工作”排行榜,其中IT主管成了最让人痛苦的职业.程序员如何才能让自己的“痛苦”的职业不那么痛苦呢? 世间少有天才,所谓天才,只不过是把别人喝咖啡的功夫都用在工作上了.所以,对于绝大多数还称不上天才的程序员而言,以下这些编程的好习惯都是无数前人智慧的结晶,具有…
注: 以下内容引自http://blog.csdn.net/xtayfjpk/article/details/52136686 请注意写代码的习惯与态度(Java) 原创 2016年08月06日 16:05:17 标签: java / 代码 / 习惯 / 态度 763 我相信很多人都有看别人代码的经历,我也相信很多人看过之后都在心里吐槽:这是哪个SB写的代码,还没有来得及看业务逻辑就因到处充斥着各种代码的"坏味道",让你根本没信心能看懂这些代码,其导致的结果就是推倒重来.那么,不禁要问…
0×01 研究背景 在分析了俄罗斯人被曝光的几个银行木马的源码后,发现其大多均存在通过劫持浏览器数据包来获取用户个人信息的模块,通过截获浏览器内存中加密前或解密后的数据包来得到数据包的明文数据.在Defcon 23被发布的工具NetRipper具备了以上恶意银行木马的这一能力,其开源的代码结构清晰,易于扩展,研究该工具对于研究该类恶意行为很有意义.其github地址在[github] ,作者还提供了metasploit和powershell版本的利用模块,本文将分析其不同版本模块均会用到的c++…
PDF 版本下载:抓住“新代码”的影子 —— 基于GoAhead系列网络摄像头多个漏洞分析 Author:知道创宇404实验室 Date:2017/03/19 一.漏洞背景 GoAhead作为世界上最受欢迎的嵌入式Web服务器被部署在数亿台设备中,是各种嵌入式设备与应用的理想选择.当然,各厂商也会根据不同产品需求对其进行一定程度的二次开发. 2017年3月7日,Seebug漏洞平台收录了一篇基于GoAhead系列摄像头的多个漏洞.该漏洞为Pierre Kim在博客上发表的一篇文章,披露了存在于1…
见:C语言初学者代码中的常见错误与瑕疵(23)…
arguments对象并不是标准的Array类型的实例.arguments对象不能直接调用Array方法. arguments对象的救星call方法 使得arguments可以品尝到数组方法的美味,知道可以吃,下面就是怎么吃的问题了.不管怎么吃,先吃一口试试. function callMethod(obj,method){ var shift=[].shift; shift.call(arguments); shift.call(arguments); return obj[method].a…
WebAPI使用属性路由,配置config.MapHttpAttributeRoutes();后出现错误: System.InvalidOperationException: 该对象尚未初始化.请确保在所有其他初始化代码后面的应用程序启动代码中调用 HttpConfiguration.EnsureInitialized(). 在 System.Web.Http.Routing.RouteCollectionRoute.get_SubRoutes() 在 System.Web.Http.Routi…
摘要:本文主要讲述怎样在进程中执行新代码,以及exec系列函数的基本用法. 在进程中执行新代码 用函数fork创建子进程后,假设希望在当前子进程中运行新的程序,能够调用exec函数运行还有一个程序.当进程调用exec函数时,该进程用户空间资源(正文.数据.堆和栈)全然由新程序替代,新程序则从main函数開始运行.由于调用exec函数并没有创建新的进程,所曾经后的进程ID并没有改变,也即内核信息基本不做改动.     exec系列函数共同拥有7函数可供使用,这些函数的差别在于:指示新程序的位置是使…
问题: 另一种阶乘 大家都知道阶乘这个概念,举个简单的例子:5!=1*2*3*4*5. 现在我们引入一种新的阶乘概念,将原来的每个数相乘变为i不大于n的所有奇数相乘 例如:5!!=1*3*5.现在明白现在这种阶乘的意思了吧! 原代码: #include <stdio.h> int main() { int n,i,j,temp,sum; ]; int factorial(int x); printf("你想输入几组数据?\n"); scanf("%d",…
做人事档案的系统考虑到数据的安全性与一致性,毕竟是要对外上线.真正投入使用的项目,数据库的可靠性与安全性上我们开发人员要考虑的就很多了,记得做机房收费系统时注册新卡是自己为了简单,写成了一个存储过程(存储过程加事务),完成了一个功能的实现就万事大吉了,这次想换一种新的方法:经过和师哥的交流学习,在代码中使用事务同样也是可以解决问题的,可以保证数据的正确性,就像银行取款一样,如果在取款的过程中取款机出现故障,我们个人的账户上的金额不会受任何影响等. 代码中使用事务前提:务必保证一个功能(或用例)在…
在VS代码中使用版本控制 Visual Studio Code集成了源代码控制,并包含了内置的Git支持.许多其他源代码控制提供程序可通过VS Code Marketplace上的扩展获得. Git历史 2.9M donjayamanne 查看git日志,文件历史记录,比较分支或c ...   Visual Studio Team S ... 902.5K MS-VSTS 连接团队服务,包括Team Foundatio ......   汞 56.1K mrcrowl 集成的Mercurial源…
“你的Java应用程序的性能是怎样诊断和优化的?不妨看看这两位西医的方子.如果你有更好疗效的药方,也欢迎在评论区告诉我们. 当我在帮助一些开发者或架构师分析及优化Java应用程序的性能时,关键往往不在于对个别方法进行微调,以节省一或两微秒的执行时间.虽然对某些软件来说,微秒级的优化确实非常重要,但我认为这并非着眼点所在.我在2015年间对数百个应用进行了分析,发现多数性能与可伸缩性问题都来源于糟糕的架构决策.框架的错误配置.错误的数据库访问模式.过量的日志记录,以及由于内存过度消耗而导致的垃圾回…
转载自:http://blog.csdn.net/roland_sun/article/details/42921131 大家知道,用C或者C++等高级语言编写的程序,会被编译器编译成最终的机器指令.这中间,编译器会对代码自动进行优化.但是,这种优化往往不一定非常高效. 所以,出于性能优化的目的,对非常关键的代码,任然需要直接用汇编指令编写. 并且在C和C++中,是无法直接对寄存器进行操作的,如果要实现的功能需要频繁与底层硬件打交道,也需要用汇编指令编写. GCC编译器支持直接在C或者C++代码…
有段时间没更新博客了,之前计划由浅到深.从应用到原理,更新一些RN的相关博客.之前陆续的更新了6篇RN应用的相关博客(传送门),后边因时间问题没有继续更新.主要是平时空余时间都用来帮着带娃了,不过还是要挤挤时间来总结下,目标是完成由浅到深.由应用到原理的RN系列博客.本篇算是属于原理部分的博客,不过不在之前计划中.本篇是本人在公司内部某事业群大前端月刊中发布的一篇纯技术分享的博客,是基于Facebook的RNTester工程进行的TurboModule的源码分析,因为不涉及公司内部的敏感代码及相…
本周作业的主要内容就是采用gcc嵌入汇编的方式调用system call. 系统调用其实就是操作系统提供的服务.我们平时编写的程序,如果仅仅是数值计算,那么所有的过程都是在用户态完成的,但是我们想将变量打印在屏幕上,就必须调用printf,而printf这个函数内部就使用了write这个系统调用. 操作系统之所以以system call的方式提供服务,是因为如果程序员能够任意操作OS所有的资源,那么将无比危险,所以OS设计出了内核态和用户态. 我们平时编程都是在用户态下,如果我们想要调用系统资源…
问题: 问题出处见 C语言初学者代码中的常见错误与瑕疵(5) . 在该文的最后,曾提到完成的代码还有进一步改进的余地.本文完成了这个改进.所以本文讨论的并不是初学者代码中的常见错误与瑕疵,而是对我自己代码的改进和优化.标题只是为了保持系列的连续性. 改进 程序的总体思想没有改变,所以main()函数不需要任何改动. int main( void ) { unsigned n ; puts( "数据组数=?" ); scanf( "%u" , &n ); )…
问题: 素数 在世博园某信息通信馆中,游客可利用手机等终端参与互动小游戏,与虚拟人物Kr. Kong 进行猜数比赛. 当屏幕出现一个整数X时,若你能比Kr. Kong更快的发出最接近它的素数答案,你将会获得一个意想不到的礼物. 例如:当屏幕出现22时,你的回答应是23:当屏幕出现8时,你的回答应是7: 若X本身是素数,则回答X;若最接近X的素数有两个时,则回答大于它的素数. 输入:第一行:N 要竞猜的整数个数 接下来有N行,每行有一个正整数X 输出:输出有N行,每行是对应X的最接近它的素数 样例…
在 C语言初学者代码中的常见错误与瑕疵(7) 中,我给出的重构代码中存在BUG.这个BUG是在飞鸟_Asuka网友指出“是不是时间复杂度比较大”,并说他“第一眼看到我就想把它当成一个数学问题来做”之后,我又重新对问题进行了数学式的思考后发现的. 这个BUG源于在(1<=A,B<=1000)条件下对矩形个数的数量级心里没数.当时觉得这个题目的目的是考察穷举,由于题目限定了A.B的范围,所以结果应该不是很大.事实证明这种想法是一厢情愿. 通常情况下,我不喜欢用数学方法解决C语言编程问题.因为很多问…
最近搞软件著作权,去除代码空行和注释比较麻烦,想写个程序自动去除,去网上搜了下,发现有类似的程序,不过只有去除注释.鉴于word中可以去除空行(用^p^p替换^p),先用网上的代码,以后有时间写个完整版的,遍历代码文件夹搜索指定的格式,自动生成最终结果. 注:这个博客的方法不是最好的,最好的方法是使用正则表达式(2013.12.03) 转载自http://blog.csdn.net/mznewfacer/article/details/6942857 程序员面试宝典上面的题目有很多是很经典的问题…
记得前一次,老周给大伙,不,小伙伴们介绍了如何填写 .resw 文件,并且在 XAML 中使用 x:Uid 标记来加载.也顺便给大伙儿分析了运行时是如何解析 .resw 文件的. 本来说好了,后续老周会写一篇关于如何在代码里面手动加载文本资源的博文,但一直拖到今天,因为老周前阵子在忙着开发自己的 UWP 应用,已经向应用商店提交了一个版本,昨天刚提交完一次更新. 好,今天咱们就聊聊代码加载文本资源的事情. 在 XAML 中使用 uid 加载资源虽然方便,但是它有个缺点——不同控件有不同的属性,有…
自己自学的时候,遇到$index不知道它是如何使用的,所以上网搜了一下,发现了这个关于使用$index可能会出现的一个小BUG,和大家分享一下 PS:我是小白,欢迎指正,非常感谢! 以下是全文: "有客户投诉,说在删除指定的某条记录时,结果删掉的却是另外一条记录!" 看起来是个很严重的BUG. 有一次我们在工作中碰到了这个问题. 要定位这个BUG非常麻烦, 因为客户也不清楚如何重现这个问题. 后来发现这个Bug是由于在 ng-repeat 中使用了 $index 引发的.下面一起来看看…
前言 if...else 是所有高级编程语言都有的必备功能.但现实中的代码往往存在着过多的 if...else.虽然 if...else 是必须的,但滥用 if...else 会对代码的可读性.可维护性造成很大伤害,进而危害到整个软件系统.现在软件开发领域出现了很多新技术.新概念,但 if...else 这种基本的程序形式并没有发生太大变化.使用好 if...else 不仅对于现在,而且对于将来,都是十分有意义的.今天我们就来看看如何“干掉”代码中的 if...else,还代码以清爽. 问题一:…