一名优秀的JAVA程序员平常一天至少写多少行代码?
普通的java工程师,平均一天的有效代码量大概是50~70行,注意是有效代码.copy来copy去的不算.这个是估算的,不是一行一行去数的.刚开始写肯定觉得累,应为你很多东西都不熟悉,语法,用法,等等,还有,你是不是照着书打的?如果你有自己的想法,自己编,就不会那么类了.以前,我连续工作36个小时(编码工作).只是感觉下半身不舒服,至于手,一点都不累.
如何防止JAVA程序源代码被反编译?
防止Java开发出来的程序被别人反编译有很多种方法,下面给你介绍几种:
1、隔离Java程序
最简单的方法就是让用户不能够访问到Java Class程序,这种方法是最根本的方法,具体实现有多种方式。例如,开发人员可以将关键的Java Class放在服务器端,客户端通过访问服务器的相关接口来获得服务,而不是直接访问Class文件。这样黑客就没有办法反编译Class文件。目前,通过接口提供服务的标准和协议也越来越多,例如 HTTP、Web Service、RPC等。但是有很多应用都不适合这种保护方式,例如对于单机运行的程序就无法隔离Java程序。
2、对Class文件进行加密
为了防止Class文件被直接反编译,许多开发人员将一些关键的Class文件进行加密,例如对注册码、序列号管理相关的类等。在使用这些被加密的类之前,程序首先需要对这些类进行解密,而后再将这些类装载到JVM当中。这些类的解密可以由硬件完成,也可以使用软件完成。
3、转换成本地代码
将程序转换成本地代码也是一种防止反编译的有效方法。因为本地代码往往难以被反编译。开发人员可以选择将整个应用程序转换成本地代码,也可以选择关键模块转换。如果仅仅转换关键部分模块,Java程序在使用这些模块时,需要使用JNI技术进行调用。
4、代码混淆
代码混淆是对Class文件进行重新组织和处理,使得处理后的代码与处理前代码完成相同的功能(语义)。但是混淆后的代码很难被反编译,即反编译后得出的代码是非常难懂、晦涩的,因此反编译人员很难得出程序的真正语义。从理论上来说,黑客如果有足够的时间,被混淆的代码仍然可能被破解,甚至目前有些人正在研制反混淆的工具。但是从实际情况来看,由于混淆技术的多元化发展,混淆理论的成熟,经过混淆的Java代码还是能够很好地防止反编译。
不同保护技术比较希望能给大家带来参考:
Java都有什么进阶技术?
初级Java程序员的重心在编写代码、运用框架->中级Java程序员重心在编写代码和框架->高级Java程序员技术攻关、性能调优->架构师 解决业务和技术问题
架构师基础:
工程构建管理:Maven 、GIT、SVN;
Java开发规范:编程规约、异常处理、日志处理、单元测试、安全问题、MySQL数据库、工程结构、p3c代码规约扫描插件;
网络编程:网络编程的伪异步IO模式、模型概念、原理,网络编程的NIO、AIO编程模型讲解,通信框架Netty实战部署以及Netty服务讲解,Netty的TCP粘包拆包、序列化以及自定义协议,Netty实战数据通信以及集群心跳检测服务,基于Netty的数据交换项目通信服务场景实战;
高并发编程与系统调优:JavaAPI调优、Java并发编程、JVM调优;
不管是开发、测试、运维,每个技术人员心里都有一个成为技术大牛的梦,毕竟“梦想总是要有的,万一实现了呢”!正是对技术梦的追求,促使我们不断地努力和提升自己。
特意整理出了一份架构图谱,主要是针对2-5年左右的Java开发程序员提升的,不管是传统行业还是互联网行业,掌握这些技术基本都能拿到一个不错的薪资,希望对大家有所帮助
一.热门框架源码
二、分布式
三、微服务架构
四、性能优化
五、多线程并发编程
六、工程化
7、电商项目实战
技术的突破需要依赖业务场景的需求和自身刻意的规划学习,二者缺一不可。但前者是机会,往往不是自己能完全把控的,如果在工作中没有实践场景,最好的办法就是系统的学习与梳理,待机会来临时才能一展身手。
粉丝福利:
为粉丝讲解福利资源:特讲解免费教程教你如何学习 ,源码、分布式、微服务、性能优化、多线程并发,从0到1,带你领略底层精髓。
如何学习:
如何获取:
私信我回复 【架构】 即可获取,
私信我回复 【架构】 即可获取,
私信我回复 【架构】 即可获取

