![](https://img-blog.csdnimg.cn/20190903141818698.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
[java]
文章平均质量分 76
手艺人王学明
岁月本长,而忙者自促,天地本宽,而鄙者自隘
展开
-
绞尽脑汁,给代码取个好名字
好名字胜却注释万千我的名字会告诉你一切不要误导写能体现作者意图的名字看的懂,还读的出来能力体现在名字里接口和实现类的命名有两套规则:明确才是王道类名、对象名方法名insert能不能 改用add?如果你无法命名,那就想想你能不能用专业领域的名称创造语境我的名字会告诉你一切范例一int n; //个人统计n是一个无意义的。它没有任何个数的概念。通过注释,你或许能得到一点信息。但是,如果要通过注释来解释这个变量。那这个变量的名字就是有问题的。我们应该指明 计量的对象和单位的名称:int perso.原创 2020-12-24 00:27:04 · 1128 阅读 · 1 评论 -
小白搭建ngrok完全手册
搭建ngrok完全手册用途你要准备这些功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入用途ngrok 将本地服务映射到公网。本地开发了一个服务,希望能给开发的同事使用,但又不想部署在服务器。开发微信公众号,必须要有个公网的原创 2020-06-09 12:03:54 · 546 阅读 · 0 评论 -
对市场上两款人脸识别工具的评判
市场上的两个方案1. 一登人脸识别简介:一登人脸识别致力于人脸识别登录的一体化解决方案。有28家合作商,比较知名的是乐视、个推等。主要方式:一登刷脸的准确性依赖于 人脸识别度以及手机号码。少了手机号码,识别度就会大幅降低。我使用我自己的手机出现了一次,一次都没有成功登录的情况。识别度还是需要增加的。技术难度:一登识别由于是一体化解决方案,所有具体实现细节绝对是不可能放开的。同时,原创 2016-12-15 18:33:45 · 1487 阅读 · 0 评论 -
设计模式【2】-对象行为型-状态模式
一、使用背景 在开发时,一个功能需根据场景不同自主的切换二、举例状态变化三、问题对象的状态太多,选择太复杂,简化状态的判断逻辑,客户不需要知道该用什么算法四、解决方案使用状态模式-允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。当控制一个对象状态的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列原创 2017-01-11 20:23:38 · 305 阅读 · 0 评论 -
2015携程JAVA工程师笔试题(基础却又没多少人做对的面向对象面试题)
前言地址:http://www.jianshu.com//p/39f91f3fba32偶然看到这篇文章,有点意思。从事java相关开发工作,这是java基础,必须知道。一、题目public class Base{ private String baseName = "base"; public Base() { callName();转载 2017-02-27 21:54:20 · 607 阅读 · 0 评论 -
Android流畅性优化必备基础知识点---线程调度方式
线程调度 编辑本词条缺少名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!计算机通常只有一个CPU,在任意时刻只能执行一条机器指令,每个线程只有获得CPU的使用权才能执行指令.所谓多线程的并发运行,其实是指从宏观上看,各个线程轮流获得CPU的使用权,分别执行各自的任务.在运行池中,会有多个处于就绪状态的线程在等待CPU,JAVA虚拟机的一项任务就是负责线程的调度转载 2017-04-28 16:36:43 · 432 阅读 · 0 评论 -
基于JDK1.7的Java反射效率研究
前言近来发现,不少框架基于Java反射进行,根据以往的说法,是反射效率不高,但Java版本迭代,优化到什么程序。还是需要自己亲自研究一下。测试环境:Eclipse + JDK1.7 + i5-4460\8G\64位Win10.ben测试方案:10次操作汇总的时间公共源码:public class reflection_TestClass { private int原创 2017-04-25 11:10:32 · 688 阅读 · 0 评论 -
分享JSON解析小心得
一个良好的编码习惯,最少要能让编写意图 跟 编写结果 保持一致。这里{}是对象,"{}"就是字符串,当你用"" 去扩 {},那是 将 对象 改变成 字符串。 这显然是编程意图的不明确导致。表面上看,一点问题都没有,实际上,确确实实的违背了数据格式在设计时的初衷。。。坚持实体化,坚持JSON数据格式的统一,坚持使用JSON生产工具原创 2017-08-19 09:06:48 · 1685 阅读 · 0 评论 -
结合公司业务后,对极光推送的进一步思考
公司决定启用推送技术。目前来说,用的是极光推送。免费版。主要目标为ios + android。不排除未来有JS上实现的需求。极光推送的文档只看到ANDROID、ios、winPhone,就是不支持js。从这点看,技术选型的拓展性不强。##回到现状因为手机本身的电量、网络的限制,我们必须要根据手机本身的特点,尽量节省电量和流量,同时要保证数据到达客户端的及时性。为了解决数据同步,两个方式...原创 2019-05-22 11:47:50 · 449 阅读 · 0 评论 -
[Think more, Code less]无招胜有招 - 忘记规范,代码更规范
系统越大,维护成本越高,这几乎是放之四海而皆准的真理。其中一个原因:代码质量参差不齐。持续优化代码、提高代码质量,是提供系统生命力的一个有效手段之一。Think more, code less(思考越多,编码越少)本文总结了General:通用Equal:平衡Short\Small:简短Simple:简单GESSS原则书面的表述: 短小精悍,平衡通用李连杰演的神教教主,...原创 2019-08-19 15:37:34 · 683 阅读 · 0 评论 -
记一次 泛型编程
泛型编程(Generic Programming)最初提出时的动机很简单直接:发明一种语言机制,能够帮助实现一个通用的标准容器库。泛型编程要解决什么问题算法的泛型类型的泛型数据结构的泛型比如如果我要在一个hashtable中查找一个key,返回什么呢?一定不是返回“索引下标”。因为在hashtable这样的数据结构中,数据存放位置不是顺序的,而且会因为容量不够的问题,被重新has...原创 2019-08-28 09:40:54 · 164 阅读 · 0 评论 -
网络相关记录-NAT穿透
-----------------------------------------------------------信息大爆炸,记不住的时候,就记录一下-----------------------------------------------------------背景简介Internet暴涨,可用IP地址不足,路由表不断增大。于是就诞生了NAT穿透NAT穿透技术简介原创 2017-01-04 17:17:28 · 455 阅读 · 0 评论 -
RFC2818 如何进行加固HTTP
协议地址本协议描述了如何使用TLS来对Internet上的HTTP进行安全加固。2.1. Connection Initiation(链接初始化)HTTP client同时也作为TLS client(后续统一称为client)。在建立链接的时候,由client初始化TCP链接,并发出TLS ClientHello报文来开始TLS协商。当TLS协商完成后,client可以初始化首个HTTP请求...翻译 2019-08-15 13:03:10 · 500 阅读 · 0 评论 -
[利其器]优雅如斯的反射工具: JOOR
JDK的反射api代码又长又难用。JOOR的目标 便是 简化 JDK反射API。JOOR是java.lang.reflect包的一个简单包装器。先看一个范例这是我用反射实现的一个全局配置部分代码Class parentClass = object.getClass(); WinConfig annotation = (WinConfig) parentClass.getAnnot...原创 2019-09-09 16:22:50 · 824 阅读 · 0 评论 -
这样才是写工具类
什么是工具类?这种 低级的问题还问的出来。最近我发现 好多东西都是一看就懂。然而,自己不知道什么时候就能写出 shi 一样的代码。这是因为编码时的构思,没有明确下来,构思不清晰,就相当于地基不稳。接下来,我们以 TimeUtil为例讲解我的思考。TimeUtils编码时的考量偶然的一次CodeReview,发现TimeUtils竟然不知道什么时候,变乱了。我知道 我该重构了。可是...原创 2019-09-09 16:45:33 · 3680 阅读 · 1 评论 -
每秒100W请求,12306秒杀业务,架构如何优化?
如《同样是高并发,QQ/微博/12306的架构难度一样吗?》一文所述,同样是高并发场景,三类业务的架构挑战不一样:QQ类业务,用户主要读写自己的数据,访问基本带有uid属性,数据访问锁冲突较小微博类业务,用户的feed主页由别人发布的消息构成,数据读写有一定锁冲突12306类业务,并发量很高,几乎所有的读写锁冲突都集中在少量数据上,难度最大那么对于秒杀类业务,系统上和业务上分别能如何优...转载 2019-09-11 10:33:26 · 625 阅读 · 1 评论 -
动态代理模式
前言本文将带着几个问题来看到底“动态代理”动态在哪里?InvocationHandler为什么没有任何实现?对于传入的newProxyInstance()的接口类型,是否有限制?如何确认某个类 是不是代理类?动态代理的实现编写你要代理的interfacepublic interface Animal { void say(); void jump();}...原创 2019-09-17 17:18:58 · 213 阅读 · 0 评论 -
自动时区和自动时间的实现
两个概念:1.NITZ(network identity and time zone)同步时间NITZ是一种GSM/WCDMA基地台方式,必须插入SIM卡,且需要operator支持;可以提供时间和时区信息中国大陆运营商基本是不支持的2.NTP(network time protocol)同步时间NTP在无SIM卡或operator不支持NITZ时使用,单纯通过网络(G原创 2016-12-20 12:43:44 · 3351 阅读 · 0 评论 -
AsyncTask源码解析,你需要摸清的细节
AsyncTask简介1. AsyncTask提供了一种恰当的简单的跟UI Thread交互的方式。2. 它不需要通过操控Threads或Handler就可以将后台操作以及其结果展示在UI Thread上。3. AsyncTask是围绕Thread和Handler被设计出的一个Helper类,它不构成一般的线程框架。4. AsyncTasks使用在短时间操作(最多几秒钟)上是非常理原创 2016-12-28 16:24:18 · 339 阅读 · 0 评论 -
整理Runntime相关
一、概述 1. Runtime类封装了运行时的环境。Runntime类允许Java应用程序在他们运行时可以跟运行的环境交互。 2. 一个Java 应用程序 只有 一个 Runtime 类实例。 3. Java应用程序不能实例化Runtime对象,但可以通过 getRuntime 方法获取单例的Runtime对象。 4. 一旦得到了一原创 2016-12-19 15:02:29 · 459 阅读 · 0 评论 -
java classloader机制
原文地址:http://yiminghe.iteye.com/blog/267959当JVM(Java虚拟机)启动时,会形成由三个类加载器组成的初始类加载器层次结构: bootstrap classloader | extension classloader | syst转载 2015-02-27 16:31:01 · 428 阅读 · 0 评论 -
JAVA命名规范
这篇文章由同事整理,我稍微调整了下格式类的命名(单词首字母大写)① Java类名通常以大写字母开头,如果类名称由多个单词组成,则每个单词的首字母均应为大写,例如TestPage 。② 如果类名称中包含单词缩写,则这个所写词的每个字母均应大写,例如:XMLExample 。③ 由于类是设计用来代表对象的,所以在命名类时应尽量选择名词 。④ 减少类名中缩原创 2015-02-27 16:28:05 · 755 阅读 · 0 评论 -
java内存分配分析/栈内存、堆内存
转载自:http://blog.csdn.net/qh_java/article/details/9084091本文将由浅入深详细介绍Java内存分配的原理,以帮助新手更轻松的学习Java。这类文章网上有很多,但大多比较零碎。本文从认知过程角度出发,将带给读者一个系统的介绍。进入正题前首先要知道的是Java程序运行在JVM(Java Virtual Machine,Java虚拟机)转载 2015-02-27 16:32:16 · 614 阅读 · 0 评论 -
励精图治---Concurrency---吞吐量、活跃性及死锁
更新概念所谓吞吐量跟活性:就是单位时间内,系统处理信息的数量,速度表现的结果。所谓死锁:就是两个线程,我有你要的,你有我要的,互不相让,都等对方让出来,就死锁了。分析情景锁顺序死锁:所有的线程申请锁的顺序不一样,那么就存在一定概率发生死锁。换言之,如果所有线程都以 相同的顺序来获得锁,那么在程序中就不会出现锁顺序死锁问题。危害死锁,小应用当然没事。如果你原创 2015-09-28 17:46:14 · 489 阅读 · 0 评论 -
励精图治---Concurrency---ThreadPoolExecutor最详
心情不好,不适合写博客。今天开篇。周末完成它。唉我的妈呀。这个世界怎么了?原创 2015-09-11 14:50:48 · 640 阅读 · 0 评论 -
励精图治---Concurrency---怎么测??
写着先原创 2015-10-09 18:25:14 · 341 阅读 · 0 评论 -
励精图治---Concurrency---GUI设计
为什么只是点击一个button, 可以看到按键变化很快? 添加了按键事件listener,并在里头dosomething的时候有时会有无响应的感觉?因为特么GUI工具包都被实现为单线程.---------->因为单线程能保证时间有序进行.多线程不稳定的多,开发难度大.现在都是单线程了.EDT: 事件分发线程 Event Dispatch ThreadEDT负责GUI原创 2015-09-21 17:46:48 · 452 阅读 · 0 评论 -
Service 详解
翻译一下Service.java的API文档----哎哟,我去,公司终于可以发文章了 简介service是应用相关组件,主要用于应用要做一个长时间运行的动作,或者不需要跟用户交互或为其他应用提供功能。每一个service,都必须在AndroidManafest.xml中定义,一个service,通过Context.startService()或Context.bindService原创 2015-10-26 16:07:26 · 1298 阅读 · 0 评论 -
励精图治---Concurrency---为什么要有线程
留了空格。带着目的性的写原创 2015-09-28 17:55:55 · 443 阅读 · 0 评论 -
JAVA常量池
---不知道哪里转来的.忘了Java程序运行在JVM上,JVM实现了java程序的平台无关性。Java的内存分配都在JVM中进行。JVM为每个已加载的类维护一个常量池。用来保存 基本数据类型,String,对其他类,方法,字段的符号引用。在Java语言中不是这样,一切都是动态的。编译时,如果发现对其它类方法的调用或者对其它类字段的引用的语句,记录进class文件中的只能是一个文本形转载 2015-10-12 17:46:09 · 723 阅读 · 0 评论 -
编译反编译工具要点汇总
一、将jar、dex反编译成smali文件1. gfw is a bitch.2. baksmali/smali新github链接:https://bitbucket.org/JesusFreke/smali/downloads .jar下载链接:https://bitbucket.org/JesusFreke/smali/downloads -------用这个 这里可原创 2015-11-13 13:04:18 · 526 阅读 · 0 评论 -
Handler、HandlerThread、Thread的区别
留空原创 2015-10-30 11:59:12 · 1410 阅读 · 0 评论 -
Java基础-深拷贝和浅拷贝的区别
最近这段时间太忙了。以至于之前一篇博文没办法写下去。趁着今天早上有1个半小时的空闲,写一篇 深拷贝与浅拷贝 为什么要拷贝?Java克隆是为了得到一个 完全一致的对象。相同点:对象完全一样。这包括里头所有的变量,对象。不同点:对象的内存地址不一样。 深拷贝与浅拷贝一般来说,拷贝的类型分为 深拷贝与浅拷贝。|———————————————————————————原创 2016-07-26 13:29:52 · 7748 阅读 · 0 评论 -
深入理解 Java 垃圾回收机制
一、垃圾回收机制的意义 Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄露,有效的使用空闲的内存。 ps:内存泄露是指该内存空间使用完毕之后未回收,在不涉及复杂数转载 2016-08-09 17:38:46 · 555 阅读 · 0 评论 -
Java Lambda表达式入门
Lambda表达式是在JDK 8中开始支持的一种函数式推导语言,能够大量减少匿名内部类那种冗余的代码。在Android中,可以大量使用在设置监听,设置异步回调等场景。简化程序代码,每个程序员都应该有这份心思转载 2016-09-21 17:29:46 · 777 阅读 · 0 评论 -
Java中只有按值传递,没有按引用传递!
转载自:http://guhanjie.iteye.com/blog/1683637今天,我在一本面试书上看到了关于java的一个参数传递的问题:写道java中对象作为参数传递给一个方法,到底是值传递,还是引用传递? 我毫无疑问的回答:“引用传递!”,并且还觉得自己对java的这一特性很是熟悉!结果发现,我错了!答案是:值传递!Java中只有转载 2015-02-27 16:32:28 · 376 阅读 · 0 评论