一.前言 类加载器实战系列的第六篇(悄悄跟你说,这篇比较水),前面5篇在这里: 实战分析Tomcat的类加载器结构(使用Eclipse MAT验证) 还是Tomcat,关于类加载器的趣味实验 了不得,我可能发现了Jar 包冲突的秘密 重写类加载器,实现简单的热替换 @Java Web 程序员,我们一起给程序开个后门吧:让你在保留现场,服务不重启的情况下,执行我们的调试代码   最近事不算多,所以有点时间写博客,昨天写着写着,测试的同学反馈说有一个bug.我看了下服务端日志,空指针了: 下面会给出…
前言 这篇其实是对一年前的一篇文章的补坑. @Java Web 程序员,我们一起给程序开个后门吧:让你在保留现场,服务不重启的情况下,执行我们的调试代码 当时,就是在spring mvc应用里定义一个api,然后api里,进行如下定义: /** * 远程debug,读取参数中的class文件的路径,然后加载,并执行其中的方法 */ @RequestMapping("/remoteDebugByUploadFile.do") @ResponseBody public String rem…
一.前言 这篇算是类加载器的实战第五篇,前面几篇在这里,后续会持续写这方面的一些东西. 实战分析Tomcat的类加载器结构(使用Eclipse MAT验证) 还是Tomcat,关于类加载器的趣味实验 了不得,我可能发现了Jar 包冲突的秘密 重写类加载器,实现简单的热替换    进入正文,不知道你有没有这样的时候,在线上或者测试环境,报了个bug.这个 bug 可能是: 从数据库.redis取了些数据,做了一些运算后,没抛异常,但是就是结果不对 抛了个空指针异常,但是看代码,感觉没问题,是取出来…
PHP笔记——java程序员看懂PHP程序   php是一种服务器端脚本语言,类型松散的语言. <?php   ?>       xml风格 <script language=”php”></script>   脚本风格 <?       ?>    简短风格 <%              %>    ASP风格 以;结尾: 注释: a)         // b)         # c)         /*     */ 变量是存储数据的…
原文地址: http://blog.huhao.name/blog/2013/12/13/become-a-freelancer-2/ 作者:胡皓 Blog:From Soldier to Programmer – 胡皓的博客 GitHub:https://github.com/howiehu Twitter:@howiehu 新浪微博:@长安胡小闹 CodeSchool:My Report Card 当我开始写这篇文章的时候,我猛然发现,此时此刻距离我辞职(2013年9月13日)至今刚好整整3…
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57ce8068d4d44a246f72baf2 Dev Club 是一个交流移动开发技术,结交朋友,扩展人脉的社群,成员都是经过审核的移动开发工程师.定期会举行嘉宾分享,话题讨论等活动. 本期讨论话题为:程序员的成长离不开哪些软技能? 首先,什么是软技能? 软技能就是激活人资的能力,即是调动别人的资源和知识的能力以及调动自己知识进行创造性思维的能力!软技能能力值越高,处理事情的…
从士兵到程序员再到 SOHO 程序员 (三) - 游击战与阻力 原文地址:http://blog.huhao.name/blog/2014/03/01/become-a-freelancer-3/ 作者:胡皓 Blog:From Soldier to Programmer - 胡皓的博客 GitHub:https://github.com/howiehu Twitter:howiehu 新浪微博:Howie-Hu 前作:<从士兵到程序员再到SOHO程序员 (一) - 起航><从士兵到程序…
  我们公司用两周的时间开发了一款微信小程序,叫<如e支付>,大家可以去体验一下.由于接口都是写好的,所以开发起来很快.我将从4个不同的角度来介绍我对微信小程序的理解. 1.技术的角度   大家都说开发一个小程序简单,因为一套代码安卓iOS都可以用.我想说的是大部分确实是如此,因为不就是网页嘛?但是有些个还是需要适配的,例如input控件,当type=number,设置maxlength属性,iOS有效,安卓就无效了,我的解决方案就是写js单独适配安卓.但是后台你一样需要开发,我们用了两周时间…
一.在centos7.3上安装docker 前置条件 x86_64-bit 系统 kernel 3.10+ .检查内核版本,返回的值大于3.10即可 [root@node1 ~]# uname -r -.el7.x86_64 .使用 sudo 或 root 权限的用户登入终端 .卸载旧版本(如果安装过旧版本的话) # yum remove docker docker-common docker-selinux docker-engine .安装需要的软件包 # yum-util提供yum-con…
----------------------------------------- go 并发 // 注解:go 语言天生为程序并发所设计,可以说go的强项就是在cpu并发上的处理. // go 语言层面就支持了并发.(不是一般高级语言的多线程并发,是系统级真实并发) // go 语言通过安全的通道发送和接受数据以实现同步 // 一般情况下,一个普通的桌面计算机跑十几二十几个线程就有点负载过大了,但是同样的硬件设备go可以轻松上K. -------------------------------…
前言: 整理一下学习 Go 语言的笔记,作为一名老程序,学习一名新的开发语言自然不需要像小白那样从 HelloWorld 看起. 简单整理一下 Go 的一些差异处,希望对大家学习 go 有点帮助,不正确的地方还请指教! 一.环境搭建: 博客园很多教程,自行解决,推荐使用 VS Code 绿灯 + 插件的方式,简单粗暴好用 二.第一课笔记整理: 基础语法:// --------------------------------------- 变量声明 var [名称] [类型] var name s…
就是简单的对数据进行增删改查.代码如下: 1.bean层:用来封装属性及其get set方法 toString方法,有参构造方法,无参构造方法等. public class Bean { private int id; private String name; private String password; private String sex; public int getId() { return id; } public void setId(int id) { this.id = id…
2013年9月13日,我从就职了一年半的S公司正式离职,并开始了我梦寐以求的“SOHO程序员”之路. 这对于我来说,是一次人生道路上的重要选择,在这里,我想分享一下我是如何选择了这条道路的,同时也是对我到目前为止的程序员生涯做一个回顾. 爱好使然 爱好是驱使我走上程序员道路的源动力,很小的时候家里就有那种用磁带作为数据存储介质的古老电脑,可以说我基本上完整的经历了从80年代后期到如今这段时间内个人电脑的发展历程,而电脑也成为了我生活中必不可缺的重要组成部分,所以从事一个能够与自己爱好相符合的工作…
“如果能时光倒流,回到过去,作为一个开发人员,你可以告诉自己在职业生涯初期应该读一本,你会选择哪本书呢?我希望这个书单列表内容丰富,可以涵盖很多东西.” 很多程序员响应,他们在推荐时也写下自己的评语.以前就有国内网友介绍这个程序员书单,不过都是推荐数 Top 10的书.其实除了前10本之外,推荐数前30左右的书籍都算经典,伯乐在线整理编译这个问答贴,同时摘译部分推荐人的评语.下面就按照各本书的推荐数排列. 1. <代码大全>史蒂夫·迈克康奈尔 推荐数:1684 “优秀的编程实践的百科全书,&l…
“如果能时光倒流,回到过去,作为一个开发人员,你可以告诉自己在职业生涯初期应该读一本,你会选择哪本书呢?我希望这个书单列表内容丰富,可以涵盖很多东西.” 很多程序员响应,他们在推荐时也写下自己的评语.以前就有国内网友介绍这个程序员书单,不过都是推荐数 Top 10的书.其实除了前10本之外,推荐数前30左右的书籍都算经典,伯乐在线整理编译这个问答贴,同时摘译部分推荐人的评语.下面就按照各本书的推荐数排列. 1. <代码大全> 推荐数:1684 “优秀的编程实践的百科全书,<代码大全>…
成为优秀的程序员是极其困难的,并且这个过程不可能一蹴而就. 我们不可能期待去种一些树,然后一夜间收获有着2000年树龄的红杉树,无论其需求有多大. 人格特点 一个人首先得是自学者来学习编程.仅仅是超过你能写出可用的小程序这个基本水平,你也需要很多年在实践中学习一切必要的技能.从没有人仅通过上课和读书就成为了一个卓越的程序员.这通常需要无数小时的编程实践.并且和普遍流行的观点相反,计算机专业不是教你编程的,而是传授理论的. 作为程序员,你必须得有几乎无尽的毅力来不断继续尝试调错.修复和开发.坚持做…
转载一个别人的文章 隔了很久没写东西了,主要是最近比较忙,更主要的是最近比较懒…… 其实这篇很早就想写了 工作和生活中经常可以看到一些程序猿,写代码的时候只关注代码的逻辑性,而不考虑运行效率 其实这对大多数程序猿来说都是没有问题的 不过作为一只有理想的CodeMonkey,我还是希望给大家分享一些性能优化心得 曾经在网上听过这样一句话 程序的可读性和性能是成反比的 我非常赞同这句话,所以对于那些极度影响阅读的性能优化我就不在这里赘述了 今天主要说的就是一些举手之劳即可完成的性能优化 减少重复代码…
菜菜哥,我最近需要做一个项目,老大让我用微服务的方式来做 那挺好呀,微服务现在的确很流行 我以前在别的公司都是以SOA的方式,SOA也是面向服务的方式呀 的确,微服务和SOA有相同之处 面向服务的架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和契约联系起来.接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台.操作系统和编程语言.这使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互.它是一种设计方法,其中包…
客户端打开小程序的时候,就将代码包下载到本地进行解析,首先找到了根目录的 app.json ,知道了小程序的所有页面. 在这个Index页面就是我们的首页,客户端在启动的时候,将首页的代码装载进来,通过微信的机制,就渲染出来了页面. App({ onLaunch() { // 小程序启动之后 触发 } }) 小程序在启动的时候,首先通过 App() 定义的 App() 实例的 onLaunch  方法,这个方法是各个页面共享的,当然还有更多的回调事件. Page({ data: { text:…
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------…
----------------------------------------- error 使用 (异常处理) // 语法 (普通错误) import "errors" func funName(paratemer) (result int, err error) { err = errors.New("自定义错误信息") } ----------------------------------------- panic 使用 (异常处理) // 语法 (致命错…
一.安装说明 https://studygolang.com/dl 二.环境变量 // 下载 *.msi 安装文件,部分环境变量默认配置好了. 其他配置如下描述 三.目录及项目层级关系 在系统环境变量配置以后,GOPATH 的目录就是你工作区,与 C#/Java 等语言不通,可以随意存放项目目录路径. 在GO中,如果有目录 "包" 层级引用关系的话,必须存放在 GOPATH 下面. 比如: GOPATH=D:\GoWorks 那么对应目录下会有 src.pkg.bin 三个目录 src…
-------------------- interface 接口 // 定义: type IHumaner interface { SayHi() // 接口中只能是方法声明,没有实现,没有数据字段 } // Student ... type Student struct { id int name string } func (tmp *Student) SayHi() { fmt.Println("Student[%s, %d] SayHi", tmp.name, tmp.id)…
go语言当中,没有 class 的概念,那么面向对象的编程思想如何展现呢,go语言中对结构体的使用 struct. package main import "fmt" type Person struct { name string sex byte age int } // 带有接收者的函数叫方法 func (tmp Person) PrintInfo() { fmt.Println("tmp = ", tmp) } // 通过一个函数,给成员赋值 func (p…
------------------- 指针 go 保留的 c 语言指针的操作,同时增加了自动垃圾回收机制 var a = new(int) *a = // &a 内存地址 -------------------- 数组 // 定义 var a []int b := [], , , , } // 下标赋值 c := []: , : } // 多维数组 var a [][]int b := [][]int {{...}, {...}, {...}} -------------------- sli…
一般我们知道了另一个应用的包名和MainActivity的名字之后便可以直接通过如下代码来启动: Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_LAUNCHER);             ComponentName cn = new ComponentName(packageName, className);             intent.setComponent(c…
IT程序猿之猿体是革命的本钱 前言 程序猿的一大特点就是加班.加班.不停地加班.... 为了美好的生活,为了生活的更加美好.我们选择勤勤恳恳,踏踏实实. 但是,工作只是生活的一部分.生命中最重要的莫过于健康.有了健康,我们就有了做任何事情的资本.对于条件有限的我们,跑步对于我们来说,是如此的适合. 跑步减肥的六大好处 1.跑步是心脏血管保健预防疾病最有效的运动. 2.跑步是最方便的有氧运动,随时随地都可以进行. 3.跑步是低消费的运动,不需要花一毛钱. 4.跑步是减轻压力最好的方法. 5.任何减…
路由大家应该都知道,在微信小程序也是有的,毕竟它是单页面应用程序.在WeChat中有五种跳转方式,分别是wx.switchTab.wx.reLaunch.wx.redirectTo.wx.navigateTo.wx.navigateBack.今天我们就说一说 如何使用这几个API来跳转页面,并且我们还要学习如何进行传参,还要知道页面栈这个知识. 在此之前,一定要学习下页面栈这个东西,要不然你就废了,小程序的页面栈最多可以存放10个页面,当等于10的时候,你就无法再用 navigateTo API…
注:觉得本章内容与理解操作系统不直接相关,所以本章并未看完,也就没有翻译完,放在这里中是为了保证手册的完整.有兴趣的人可以去原址查看. https://pdos.csail.mit.edu/6.828/2016/readings/i386/c03.htm Chapter 3 Applications Instruction Set 程序指令集 This chapter presents an overview of the instructions which programmers can u…
从生存.制胜.发展三个方面入手,为大家展示出程序员求职与工作的一幅3D全景图像.本书中既有在公司中的生存技巧,又有高手达人的进阶策略,既有求职攻略的按图索骥,又有入职后生产环境的破解揭秘. 书中浓缩了程序员求职与工作.生存与发展的点滴经验,希望本书能够成为你的朋友.望本书能让即将走向工作岗位的程序员和已经成为程序员的朋友,对工作和软件行业做到既"知己"又"知彼",在入职前对职业状况清楚了解,入职后对职业方向清晰认识,使大家的工作更加得心应手,更加轻松愉快.   相关…