java 类技术总结
风的王子
【关注领域】 架构 算法 前端 Android Flutter Unity
【喜欢爱好】武术和运动 看书 科幻和未解之谜
【我的GITHUB】https://github.com/zcwfeng
展开
-
插件化思想与类加载
欢迎关注我的简书大话插件化系列目录插件化(一) 插件化思想与类加载插件化(二) 插件化Activity的启动插件化(三) 插件资源加载最开始的起源:插件化技术最初源于免安装运行 apk 的想法。免安装的 apk 我们称它为 插件支持插件的 app 我们称它为 宿主免安装的 apk 我们称它为 插件支持插件的 app 我们称它为 宿主插件话解决的问题APP的功能模块越来越多,体积越来越大模块之间的耦合度高,协同开发沟通成本越来越大方法数目可能超过65535,APP占用的内存过大应转载 2020-12-03 22:53:37 · 319 阅读 · 0 评论 -
多线程理论基础
分享我 的简书原创文章,欢迎点赞和关注几个基础问题cpu 核心和线程数以前 6个核心数,一个核一个线程 1:1 单核技术,1和核心1个线程现在 超线程技术1:2 6个核心数 12 个线程 已经发展4核,6核技术CPU 轮转机制 进程,操作系统管理的最小单元。线程cpu调度的最小单元 进程> 线程,1个进程最少1个线程。只要线程还存活,进程就活着 进程A{线程1,线程2...} 进程B{}挂掉 操作系原创 2020-09-30 22:25:22 · 275 阅读 · 0 评论 -
基础回顾 jar包
大多数 Java 程序员都熟悉对 JAR 文件的基本操作。但是只有少数程序员了解 JAR 文件格式的强大功能。在本文中,作者探讨了 JAR 格式的许多功能和优势,包括打包、可执行的 JAR 文件、安全性和索引。JAR 文件是什么?JAR 文件格式以流行的 ZIP 文件格式为基础,用于将许多个文件聚集为一个文件。与 ZIP 文件不同的是,JAR 文件不仅用于压缩和发布,而且还用于部署和封装库转载 2013-11-06 22:33:29 · 879 阅读 · 0 评论 -
ArrayList和LinkedList比较
一般大家都知道ArrayList和LinkedList的大致区别: 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。 3.对于新增和删除操作add和remove,LinedList比较占优势转载 2013-11-05 23:35:57 · 559 阅读 · 0 评论 -
MD5+ENUM DEMO
package com.example.md5;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;import java.util.HashMap;/** * 模拟md5数字加密入库,取出加密数字 * @author zhangchuanwei * 201原创 2013-11-19 16:50:31 · 1164 阅读 · 0 评论 -
RSA DSA DEMO
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------原创 2013-11-19 17:01:49 · 1268 阅读 · 0 评论 -
ConcurrentHashMap
1 ConcurrentHashMap提供并发的检索和更新操作,功能规范和hashtable一样。同步策略有区别,使用非全局锁。2 检索操作get不阻塞,很可能和更新操作重叠,总能得到最近更新完成的值。3 迭代元素不会抛出并发修改异常,迭代元素只是迭代器创建时数据结构的快照。迭代子同时只能被一个线程使用。4 更新操作的并发级别是可以配置的,由concurrencyLevel决定,作转载 2013-11-05 09:33:44 · 821 阅读 · 0 评论 -
java锁机制
一段synchronized的代码被一个线程执行之前,他要先拿到执行这段代码的权限,在java里边就是拿到某个同步对象的锁(一个对象只有一把锁); 如果这个时候同步对象的锁被其他线程拿走了,他(这个线程)就只能等了(线程阻塞在锁池等待队列中)。 取到锁后,他就开始执行同步代码(被synchronized修饰的代码);线程执行完同步代码后马上就把锁还给同步对象,其他在锁池中等待的某个线程就可以拿到锁转载 2013-11-05 09:17:43 · 704 阅读 · 0 评论 -
CopyOnWriteArrayList
除了加锁外,其实还有一种方式可以防止并发修改异常,这就是将读写分离技术(不是数据库上的)。先回顾一下一个常识:1、JAVA中“=”操作只是将引用和某个对象关联,假如同时有一个线程将引用指向另外一个对象,一个线程获取这个引用指向的对象,那么他们之间不会发生ConcurrentModificationException,他们是在虚拟机层面阻塞的,而且速度非常快,几乎不需要CPU时间。2、J原创 2013-11-05 09:31:14 · 771 阅读 · 0 评论 -
基础回顾
1 wait方法: 该方法属于Object的方法,wait方法的作用是使得当前调用wait方法所在部分(代码块)的线程停止执行,并释放当前获得的调用wait所在的代码块的锁,并在其他线程调用notify或者notifyAll方法时恢复到竞争锁状态(一旦获得锁就恢复执行)。 调用wait方法需要注意几点: 第一点:wait被调用的时候必须在拥有转载 2013-11-06 22:26:29 · 744 阅读 · 0 评论 -
DocumentHelper用法
注意:Node是element的父类。public static void main(String args[]){String s="" +"" +"" +"440305198012255411" +"sdfsdf" +"19801225" +"m" +""; try {转载 2013-11-12 00:52:44 · 20439 阅读 · 1 评论 -
Ant build.xml 详解
Ant的概念 可能有些读者并不连接什么是Ant以及入可使用它,但只要使用通过Linux系统得读者,应该知道make这个命令。当编译Linux内核及一些软件的源程序时,经常要用这个命令。Make命令其实就是一个项目管理工具,而Ant所实现功能与此类似。像make,gnumake和nmake这些编译工具都有一定的缺陷,但是Ant却克服了这些工具的缺陷。最初Ant开发者在开发跨平台的应用时,用样也是转载 2014-06-18 11:43:11 · 481 阅读 · 0 评论 -
BigDecimal总结
商业计算尽量用BigDecimal。只是个使用demo。原创 2014-10-20 15:15:09 · 549 阅读 · 0 评论 -
有用链接总结
TIPS @2 更新###################################################################@1这里的这些事博客地址我会和一些,我认为还算牛的人去学习的博客地址和交流,一直置顶,其他的连接我会在下面罗列http://yangshangchuan.iteye.com/ (个人开发,原创 2012-09-07 17:16:29 · 1268 阅读 · 0 评论 -
JAVA8 新特性(二)转载整理
Java 8新增了LocalDate和LocalTime接口,为什么要搞一套全新的处理日期和时间的API?因为旧的java.util.Date实在是太难用了。java.util.Date月份从0开始,一月是0,十二月是11,变态吧!java.time.LocalDate月份和星期都改成了enum,就不可能再用错了。java.util.Date和SimpleDateFormatter都不是线转载 2015-03-23 15:40:01 · 472 阅读 · 0 评论 -
Java 8新特性:全新的Stream API (三) 转载整理
Java 8引入了全新的Stream API。这里的Stream和I/O流不同,它更像具有Iterable的集合类,但行为和集合类又有所不同。Stream API引入的目的在于弥补Java函数式编程的缺陷。对于很多支持函数式编程的语言,map()、reduce()基本上都内置到语言的标准库中了,不过,Java 8的Stream API总体来讲仍然是非常完善和强大,足以用很少的代码完成许多复杂的转载 2015-03-23 15:47:12 · 864 阅读 · 0 评论 -
java8 新特性总结(-)转载整理
在Java 8之前的版本,代码编译为class文件后,方法参数的类型是固定的,但参数名称却丢失了,这和动态语言严重依赖参数名称形成了鲜明对比。现在,Java 8开始在class文件中保留参数名,给反射带来了极大的便利。示例:public class GetRuntimeParameterName { public void createUser(String name, int原创 2015-03-23 15:14:55 · 579 阅读 · 0 评论 -
java8 新特性 v8 nashorn 引擎(五)
简单的javascript 作为文本输出ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("nashorn"); String js; js = "var map = Array原创 2015-03-23 18:22:26 · 5485 阅读 · 1 评论 -
Java 8新特性:lambda表达式(四)转载总结
Java 8终于引进了lambda表达式,这标志着Java往函数式编程又迈进了一小步。在Java 8以前的代码中,为了实现带一个方法的接口,往往需要定义一个匿名类并复写接口方法,代码显得很臃肿。比如常见的Comparator接口:String[] oldWay = "Improving code with Lambda expressions in Java 8".split(" ");转载 2015-03-23 16:55:32 · 464 阅读 · 0 评论 -
HBase的理论性总结
1.HBase的体系结构主从服务器架构,有HReginon群和HBase Master服务器构成。HBase Master负责管理所有的HRegion服务器,所有的HRegion服务器通过Zookeeper来进行协调处理HBase 服务器运行期间的错误。HBase Master 不保存HBase中的任何数据,HBase 逻辑上表会被划分为多个HRgion,然后存储在HRgion服务器群。HBa原创 2013-11-03 11:29:15 · 1310 阅读 · 0 评论 -
自己实现图片压缩技术,直接上代码,绝对好用(优化效果不错)
package photo.zipcode;import java.io.*;import java.util.logging.Level;import java.util.logging.Logger;import java.awt.*;import com.sun.image.codec.jpeg.*;import java.awt.image.Buffered原创 2013-05-23 16:23:28 · 2980 阅读 · 0 评论 -
AlertDialog 的自定义
android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#FFFFFFFF" android:orientation="vertical" > Button android:id="@+id/button"原创 2012-07-17 17:35:27 · 771 阅读 · 0 评论 -
初始化屏幕宽高参数的两种写法
第一种利用getWindowgetWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);第二种(xxxlayout).setLayoutParams(new LayoutParams(原创 2012-06-05 23:18:40 · 687 阅读 · 0 评论 -
三星手机严重的bug,后台不断刷log,所以非常致命,很费电
原创 2012-06-04 10:25:50 · 1580 阅读 · 0 评论 -
调用键盘的类型
package com.zcw.widget;import android.app.Activity;import android.os.Bundle;import android.text.InputType;import android.text.method.NumberKeyListener;import android.view.View;import and原创 2012-06-04 10:17:44 · 647 阅读 · 0 评论 -
有三种东西永远不能放入数据库
图片,文件,二进制数据既然数据库支持BLOB类型的数据,把文件塞进BLOB字段里一定没有错了!?错,不是这样的!别的先不提,在很多数据库语言里,处理大字段都不是很容易。把文件存放在数据库里有很多问题:对数据库的读/写的速度永远都赶不上文件系统处理的速度数据库备份变的巨大,越来越耗时间对文件的访问需要穿越你的应用层和数据库层这后两个是真正的杀手。把图片缩略图存到数据库里?很好,那转载 2012-05-30 14:11:33 · 752 阅读 · 0 评论 -
KindEditor 4.1 发布,在线HTML编辑器
KindEditor 4.1 发布,该版本新增基于 swfupload 实现的图片批量上传 ,地图默认用百度地图,K.create 支持多个 textarea,此外包含一些功能改进和 BUG 修复。还有,测试方面引入 selenium,自动完成单元测试,开始编写一些功能性测试,为编辑器的稳定性打好基础。KindEditor 4.1 变更记录:新增: 批量图片上传功能(multiim转载 2012-05-30 14:14:13 · 711 阅读 · 0 评论 -
android----官方Calendar例子
http://code.google.com/p/android-calendar-view/downloads/list翻译 2012-03-31 22:25:14 · 864 阅读 · 0 评论 -
日期工具
Calendar cal = null; try { final int year = Integer.parseInt(temp.substring(0, 4)); final int month = Integer.parseInt(temp.substring(4, 6)); final int原创 2012-03-09 14:28:07 · 507 阅读 · 0 评论 -
android小技巧2
Android下基于XML的 Graphics以前作图,一般有两种方式,首先是UI把图形设计好,我们直接贴,对于那些简单的图形,如矩形、扇形这样的图形,一般的系统的API会提供这样的接口,但是在Android下,有第三种画图方式,介于二者之间,结合二者的长处,如下的代码:Java 代码原创 2012-06-06 09:41:23 · 673 阅读 · 0 评论 -
android小技巧1
webView 不用缓存webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);去掉头部requestWindowFeature(Window.FEATURE_NO_TITLE);原创 2012-06-05 23:28:13 · 505 阅读 · 0 评论 -
Android手机屏幕适配
如何将一个应用程序适配在不同的手机上,虽然这不算是一个技术问题,但是对于刚刚做屏幕的开发人员来说,还真不是一件多么简单的事情。 首先:你需要在AndroidManifest.xml文件的元素如下添加子元素supports-screens android:largeScreens="true" android:normalScreens="true" an转载 2012-07-11 10:13:34 · 2098 阅读 · 0 评论 -
android经验谈一
当用xml自定义控件时候要用到动画等。而且要用到onFinishInflate方法,如果不用的话会报错 @Override protected void onFinishInflate() { LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) between.getLayoutParams(原创 2012-06-28 11:27:04 · 611 阅读 · 0 评论 -
android 自定义动画效果 一
/** * 定义从右侧进入的动画效果 * @return */ protected Animation inFromRightAnimation() { Animation inFromRight = new TranslateAnimation(原创 2012-07-06 10:46:10 · 964 阅读 · 0 评论 -
jQuery小结2--就绪函数
文档就绪函数您也许已经注意到在我们的实例中的所有 jQuery 函数位于一个 document ready 函数中:$(document).ready(function(){--- jQuery functions go here ----});这是为了防止文档在完全加载(就绪)之前运行 jQuery 代码。如果在文档没有完全加载之前就运行函数,操作可能失败。原创 2012-06-19 13:20:22 · 816 阅读 · 0 评论 -
android 小技巧3-edittext做输入限制
如何设置EditText,使得只能输入数字或者某些字母呢?一、设置EditText,只输入数字:方法1:直接生成DigitsKeyListener对象就可以了。et_1.setKeyListener(new DigisKeyListener(false,true));方法2:在EditText中设置属性,android:numeric="integer"即只能输入整数,如下原创 2012-06-15 15:54:39 · 1187 阅读 · 0 评论 -
有用连接总结一,Oauth-singpost
http://code.google.com/p/oauth-signpost/原创 2012-05-22 23:21:02 · 634 阅读 · 0 评论 -
Android 键盘相关一
一、软键盘显示的原理 软键盘的本质是什么?软键盘其实是一个Dialog! InputMethodService为我们的输入法创建了一个Dialog,并且将该Dialog的Window的某些参数(如Gravity)进行了设置,使之能够在底部或者全屏显示。当我们点击输入框时,系统对活动主窗口进行调整,从而为输入法腾出相应的空间,然后将该Dialog显示在底部,或者全屏显示。原创 2012-05-22 17:52:26 · 946 阅读 · 0 评论 -
Android 技术总结 二 textView 和 Paint
在宽width高height的画布上画一字符串,使字符串水平竖直居中: 水平居中很简单,paint.setTextAlign(Align.CENTER);然后drawText的x坐标设置为width / 2即可,竖直居中稍显麻烦,可以使用FontMetrics对象计算文字高度,然后计算baseline,使文字垂直居中,代码如下: Paint paint = new Paint();原创 2012-05-18 08:57:52 · 1098 阅读 · 0 评论 -
SWT Win32 Extension
SWT Win32 Extension 是Eclipse类库SWT的Win32本地原生扩展. 本项目提供了一个软件开发工具库,能够让您使用Java语言开发原生的Windows应用程序而不需要编写额外的JNI代码。使用SWT Win32 Extension,您将不需要创建原生的动态链接库来调用操作系统动态链接库的系统API或者方法。您仅仅需要做的就是编写Java代码,SWT Win转载 2012-02-07 09:35:03 · 2374 阅读 · 3 评论