JAVA编码中存在一些容易被人忽视的陷阱,稍不留神可能就会跌落其中,给项目的稳定运行埋下隐患.此外,这些陷阱也是面试的时候面试官比较喜欢问的问题. 本文对这些陷阱进行了统一的整理,让你知道应该如何避免落入陷阱中,下面就一起来了解下吧. 循环中操作目标list 遍历List然后对list中符合条件的元素进行删除操作,这是项目里面非常常见的一个场景. 先看下两种典型的错误写法: 错误写法1: for (User user : userList) { if ("男".equals(user.…
看到大家对上篇<Java面试中遇到的坑>一文表现出强力的关注度,说明大家确实在面试中遇到了类似的难题.大家在文章留言处积极留言探讨面试中遇到的问题,其中几位同学还提出了自己的见解,我感到非常高兴,还有几位同学强烈要求给出题目答案,那我很乐意跟大家一起探讨分享这些题目. 我将题目答案写下来,这个并非标准答案,有不准确的地方请大家辩证补充. 1.StringBuilder替代String拼接,面试中经常会问到String,StringBuilder,StringBuffer的区别. 解答:Stri…
Java开发中很多人都不愿意修改自己以前的代码,看别人的代码更是无法忍受,当看到别人代码里面一些匪夷所思的写法实现时,恨不得找到负责人好好跟他谈谈心,那么你在开发中是不是也使用到以下几种实现呢. 1.StringBuilder替代String拼接面试中经常问 String,StringBuilder,StringBuffer的区别. 1.对参数未做空验证,就做判断值相等 下面的写法将常量放到方法左边,能防止NPE. 2.这个坑很多兄弟都踩过,知道为什么? 打印结果为false,而下面结果为tru…
前言 有幸接触了一下传说中的对称加密算法3DES 感觉这些加密算法与我的工作是想去甚远的,一般没什么机会接触这些东西 今次了解了一下3DES这个对称算法 原理算不上明白,算是踩了C#中的一些坑吧 C#中对于密钥的处理比较奇怪,花费了一晚上一早上的时间才弄明白 期间偷窥了不少C#的源代码 下面由我娓娓道来 简介 3DES算法命名 定义算法最早期的标准被放在ANS X9.52中并在1998年发布并将其描述为三重数据加密算法(简称TDEA),在ANSI X3.92中定义了该算法的三个操作但是并没有使用…
众所周知,Java编程语言在IT行业是企业中不可缺少的.不管,从Web应用到Android应用,这款语言已经被广泛用于开发各类应用及代码中的复杂功能.但在编写代码时,bug永远是困扰每一位从业者的头号大难题.今天就与大家分享几个关于减少Java开发中的bug数量的最佳实践方法,希望能给大家带来一些帮助. 不要依赖初始化 在Java编程中,开发者常常依赖构造函数进行对象初始化.不过这其实是一种常见误区.我们完全可以在无需调用构造函数的情况下,通过多种方式实现对象分配.比如说:将所有变量声明为私有,…
不定时更新翻译系列,此系列更新毫无时间规律,文笔菜翻译菜求各位看官老爷们轻喷,如觉得我翻译有问题请挪步原博客地址 本博文翻译自: https://dotnetcoretutorials.com/2017/10/11/owasp-top-10-asp-net-core-sql-injection/ OWASP或者说是开放Web应用程序安全项目,这是一个非营利性的组织,其目的是促进安全的web应用程序的开发和设计.当他们在世界各地举办不同的研讨会和活动时,你可能听说过他们,因为"OWASP Top…
[1]您确定真正了解后缀表达式与前缀表达式的区别吗? public class IncrementDemo{ public static void main(String[] args) { int i = 0; int j = 0; i = i++; j = ++j; System.out.printf("i=%d,j=%d \n",i,j); } } 输出结果是什么呢? 关于前缀表达式与后缀表达式,JLS中是这样解释的: 1.The value of the postfix inc…
俗话说早起的鸟儿有虫吃,现在临年关越来越近,有跳槽的想法的同事也都打算年前做好功课年后入职,所谓年终奖拿了,工作换的也是水到渠成. 说到这里想必有同学要说了,年底了放着年终奖不拿为何要跳槽呢?这个就要听听我这个老司机的见解了,因为年底很多公司会为明年的宏伟计划储备人才,打算来年大干一场,此时跳槽(俗称入坑)相对比较容易,企业真可谓求贤若渴,那么这会你去面试入职是不是就相对容易一些,我身边一个老司机刚去了平安金融. 反观年后,大批怀抱理想之士奔赴面试场地,企业顺利择优录取,故而年后入职入坑较难.刚…
简述 资料参考: https://docs.oracle.com/javase/tutorial/rmi/overview.html https://blog.csdn.net/bigtree_3721/article/details/50614289 https://stackoverflow.com/questions/11273353/java-rmi-and-classnotfoundexception RMI特点 Java原生提供 可以根据一个名字来获取远程对象 调用远程对象的方法时,…
作者 杨苏博,偏后端的全栈开发,目前负责腾云扣钉的 Cloud Studio 产品.在团队中负责接技术架构设计与 Review.Cloud Studio 编辑器内核设计与开发.部分核心插件设计与开发:对 WebIDE 领域中的 VS Code 和 Theia IDE 有深入研究与丰富实践:多年 Serverless 领域从业经验,是 Serverless First Malagu 开源框架的作者:热爱开源,敢于创新. 前言 Next.js 是由 Vercel 团队研发的一款全栈应用开发框架.我们…
1. Table 'my_data_base.gjp_zhangwu' doesn't exist Query: select * from gjp_zhangwu Parameters: 数据库中的表不存在 2.java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory 需要导入commons-logging jar包…
问题1:python中print的连串输出与java不一样? 输入print(code +"+++"); --在代码中写入,界面未报错,但是告诉你不行 会报错,如图: 解决办法: 1)去掉 +的连接符使用 print(code) 2)python中print的连串输入是这样的 --适用场景:适用于多个变量打印和代码标记调试 print(code,"+++") 问题2:…
1 让eclipse新建的jsp页面直接默认的就是gb2312 打开Window->Preferences,打开General中的 Content Types,选中Text 这是改全部的TXT的字符集,也可以选定某个类型来设置. 也可以在项目来设置,也可以单个文件指定. 2 Tomcat中文乱码问题的原理和解决方法 参见自:http://www.williamlong.info/archives/469.html…
先看一段代码: String line = "openssh|7.1"; String[] pkg = line.split("|"); System.out.println(pkg.length); System.out.println(pkg[0]); 按照C++的经验,想当然第一行输出是2,第二行是 openssh:可是实际输出却是11和"o".最终查找资料有如下发现: 1.如果用“.”作为分隔的话,应该是String.split(&quo…
1.......对象参数接收不能大写…
https://blog.csdn.net/call_me_fly/article/details/79012581…
这段时间 有一点心很浮躁,不过希望自己马上要矫正过来.好好学习编程!这段时间我想好好地研究一下TCP/IP协议和网络传输这块!加油 一.TCP/IP模型 TCP/IP协议模型(Transmission Control Protocol/Internet Protocol),包含了一系列构成互联网基础的网络协议,是Internet的核心协议. 基于TCP/IP的参考模型将协议分成四个层次,它们分别是链路层.网络层.传输层和应用层.下图表示TCP/IP模型与OSI模型各层的对照关系. TCP/IP协…
不定时更新翻译系列,此系列更新毫无时间规律,文笔菜翻译菜求各位看官老爷们轻喷,如觉得我翻译有问题请挪步原博客地址 本博文翻译自: https://dotnetcoretutorials.com/2017/10/25/owasp-top-10-asp-net-core-cross-site-scripting-xss/ 在这篇文章的前几次迭代中,我用了一个很长的篇幅解释了什么是跨站脚本(XSS).但在花了好几个小时来完善它之后,我觉得向你展示一个简单的屏幕截图就更容易了. 这例子很简单.我有一个用…
不定时更新翻译系列,此系列更新毫无时间规律,文笔菜翻译菜求各位看官老爷们轻喷,如觉得我翻译有问题请挪步原博客地址 本博文翻译自: https://dotnetcoretutorials.com/2017/10/16/owasp-top-10-asp-net-core-broken-authentication-session-management/ 在我们之前关于OWASP Top 10的文章中,我们讨论了SQL注入.SQL注入有一个非常明确的解释和例子,但这次我们讲的个关于"失效的访问控制和S…
Xcode IDE拥有着诸如导航.重构.校准等众多非常高大上的工具,而予以辅助的插件更是在Xcode的基础上对相关功能进行改进与扩展.在应用开发过程中,通过开源包管理器Alcatraz对插件进行安装管理,打造最为强大的开发环境,早已成为开发者们的必备功课.本文总结介绍了备受开发者喜爱的10款开源Xcode插件,涉及代码编辑.注释.管理等各个方面. 1. Code Pilot 说到Xcode那些炙手可热的插件,很多开发者首先都会想到Code Pilot.Code Pilot是Xcode 5的一款扩…
异步Task简单介绍 本标题有点 哗众取宠,各位都别介意(不排除个人技术能力问题) —— 接下来:我将会用一个小Demo 把 本文思想阐述清楚. .Net 4.0 就有了 Task 函数 —— 异步编程模型 .Net 4.6 给 Task 增加了好几个 特别实用的方法,而且引入了 await async 语法糖 当然,这是非常不错的技术,奈何我有自己的线程队列封装,也就没有着急使用这个东西. 终究入局 Task异步函数 近来,有项目需要使用到 DotNetty 这个异步Socket框架. 这个框…
Net4.6 Task 异步函数 比 同步函数 慢5倍 踩坑经历 https://www.cnblogs.com/shuxiaolong/p/DotNet_Task_BUG.html 异步Task简单介绍 本标题有点 哗众取宠,各位都别介意(不排除个人技术能力问题) -- 接下来:我将会用一个小Demo 把 本文思想阐述清楚. .Net 4.0 就有了 Task 函数 -- 异步编程模型 .Net 4.6 给 Task 增加了好几个 特别实用的方法,而且引入了 await async 语法糖 当…
项目中在研究去掉router#!的过程中的踩坑过程.…
目录 1.1 踩坑案例 1.2 填坑解法 1.3 坑位分析 1.4 技术关键字 1.5 坑后思考 下期坑位预告 代码示例支持 平台: Centos 6.3 Python: 2.7.14 代码示例: 菜单 - Python踩坑指南代码示例 1.1 踩坑案例 小明是个服务器管理员, 他从老管理员手里接手了一个非常繁琐的运维工作: 短暂授权root 账号给不同的 team 接口人运行备份任务 该运维任务有几个特点: 任务需且仅需运行在 root 下 root 账号只能短暂授权给各个小组 通过账号管理平…
​ easytrader是用python写的可以调用主要券商完成自动化炒股的一个软件 ,但我用的是同花顺,在研究过程中,发现同花顺暂时调不通.后来搜索发现thstrade的源码作者说是easytrader对同花顺已经不能调用成功 . 所以之后改为thstrader的研究.最终实现了查余额,查持仓,卖出股票,买入股票的 Easytrader踩坑之旅(一) Easytrader踩坑之旅(二) EasyTrader踩坑之旅(三) ​ 总结一下踩坑过程中遇到的问题 No module named win…
找出占用cpu最高的线程堆栈信息 在java编码中,有时会因为粗心导致cpu占用较高的情况,为了避免影响程序的正常运行,需要找到问题并解决.这里模拟一个cpu占用较高的场景,并尝试定位到代码行. 示例代码如下: public class Math { public static final int initData = 666; public static User user = new User(); public int compute() { //一个方法对应一块栈帧内存区域 int a…
目录 1.1 踩坑案例 1.2 填坑和分析 1.2.1 从程序优化入手 1.2.2 从资源软硬限入手 1.4.1 技术关键字 下期坑位预告 代码示例支持 平台: Centos 6.3 Python: 2.7.14 代码示例: 菜单 - Python踩坑指南代码示例 1.1 踩坑案例 长期运行的daemon进程或者socket测试类进程, 经常遇到的坑是: IOError: [Errno 24] Too many open files 即进程遇到 IO 错误, 无法打开更多的文件. 1.2 填坑和…
为什么说一个好的员工能顶 100 个普通员工 我们的做法是,要用最好的人.我一直都认为研发本身是很有创造性的,如果人不放松,或不够聪明,都很难做得好.你要找到最好的人,一个好的工程师不是顶10个,是顶100个.所以,在核心工程师上面,大家一定要不惜血本去找,千万不要想偷懒只用培养大学生的方法去做.最好的人本身有很强的驱动力,你只要把他放到他喜欢的事情上,让他自己有玩的心态,他才能真正做出一些事情,打动他自己,才能打动别人.所以你今天看到我们很多的工程师,他自己在边玩边创新.所以,找最好的人,要给…
前言 作为Java程序员的你,不知道有没有踩过一些基础知识的坑. 有时候,某个bug查了半天,最后发现竟然是一个低级错误. 有时候,某些代码,这一批数据功能正常,但换了一批数据就出现异常了. 有时候,你可能会看着某行代码目瞪口呆,心里想:这行代码为什么会出错? 今天跟大家一起聊聊99%的Java程序员踩过,或者即将踩的6个坑. 1. 用==号比较的坑 不知道你在项目中有没有见过,有些同事对Integer类型的两个参数使用==号比较是否相等? 反正我见过的,那么这种用法对吗? 我的回答是看具体场景…
最近刚做完mysql的各种需求,项目要满足oracle数据库,于是走上了漫漫的踩坑之路,同行可以看看以免踩坑……第一条:oracle建表的时候不需要在建表sql语句后指定默认字符集 DEFAULT CHARSET=utf8 ,为什么呢?因为oracle没有表级别的字符集,在建库的时候就已经定好了第二条 :oracle建表的时候自增主键不能用 AUTO_INCREMENT,为什么呢?因为这个是mysql的用法,其他数据库自增主键用法也不同,oracle在所有里面自增字段最麻烦,需要额外的执行命令让…