- 浏览: 190123 次
- 性别:
- 来自: 北京
最新评论
-
java_pad:
ReflectionUtil 是个什么东东???能否也贴出来呢 ...
对pojo做protobuf的直接编解码实现 -
623deyingxiong:
/**
* 从protobuf字节数据中,得到指定类 ...
对pojo做protobuf的直接编解码实现 -
shadowsese:
当类中的属性为其它类对象时,会出现转换问题的。
对pojo做protobuf的直接编解码实现 -
Adam289:
。。。。。。。。。。。。。。。。。。
人人网相册漏洞:非好友可查看隐私相册 -
thanq:
mark下, 祝作者好运~
面试随想
文章列表
面试如同考试,但比国内的考试更加易抄袭,易掌控。
说它易抄袭,并不是说能提前知道答案,事实上考题也是未知的,但却可以从各种途径得知考题的范围。如,招聘要求上写的各种技能,都可以提前在网上通过搜索引擎了 ...
同步(Synchronization)
线程之间的通信主要是通过共享变量和变量指向的对象。这种形式的通信非常高效,但是产生了两种可能的错误:线程干扰(thread interference)和读脏数据(memory consistency errors)。我们需要使用同步来避免这些错误。 ...
protobuf的编解码具有性能高、传输数据量小、跨语言的特点。但按照protobuf官方文档https://developers.google.com/protocol-buffers/docs/overview中说的,需要先用protoc编译器生成对应语言的编解码代理,然后再用代理build和parse数据。
在我的一个应用场景中,使用脚本根据配置直接生成java pojo源码和对应proto文件,并在pojo中加上自身的编解码方法。这样的话若采用调用protoc生成代理的策略显得十分笨拙,另外既然protobuf能用代理类去解编码数据,那理论上,直接编解码数据也是可以实现的,但遗憾的 ...
package com.test.algorithm.dp;
import java.util.HashSet;
import java.util.Set;
/**
* @author hawkinswang
*
* 01背包问题:在指定数组中挑选任意组合,让它们的和等于一个特定值,列出所有组合方式
* 使用动态规划方法解决,状态转移方程:dp[i][j]=dp[i-arr[j]][j-1].add(arr[j])
*
*/
public class FindComineEqualSum {
public stat ...
(转)Axis传递、返回复杂类型的对象
- 博客分类:
- SOAP
http://www.cnblogs.com/hoojo/archive/2010/12/20/1911380.html
package com.test;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
/**
* @author Hawkins
*
*
* 多维集合迭代器
*/
public class MultiDimenIterator<T> {
private Index[] table = new Index[255];// 数组从前到后,对应的是高位到低位。
private ...
/**
* 连接 webservice 服务器,调用指定方法。
*
* @param namespace
* @param endpoint
* @param function
* 接口方法名称
* @return boolean 是否连接成功
*/
private boolean connect(String namespace, String endpoint, String function,
List<String> paramNames) {
try {
// 连接WS服务 ...
不可变对象(Immutable Objects)
如果一个对象的状态在其创建之后不能被改变,那我们就说它是不可变对象。在多线程编程中,最大程度地使用不可变对象可以实现简单又可靠的代码。
不可变对象在并发应用中特别有用。因为它们不会改变状态,它们在遇到线程干扰和不一致访问时也不会出错(译注:因为每个线程在试图改变一个对象时,实际上是得到了该对象在最新状态下的拷贝,例如String就是不可变对象)。
程序员经常不愿使用不可变对象,因为他们担心拷贝对象会降低性能。实际上,创建对象的资源耗费常被高估(overestimated),实际上这样的资源耗费完全可以被不可变对象提高的效率抵消掉。使用不可变 ...
高级并发对象
到目前为止,上几个章节中,我们重点讲了Java框架最原始的低级API。这些API对于完成基本任务来说已经足够了,但是对于更高级的工作我们需要更高级的API。对于那些需要充分利用现代多处理器和多核系统的大规 ...
package com.test.threads;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
/**
* @aut ...
package com.test.json;
import java.util.ArrayList;
import java.util.List;
import com.google.gson.Gson;
import com.google.gson.annotations.SerializedName;
import com.google.gson.reflect.TypeToken;
public class GsonTest {
public static void main(String[] args) {
Gson gson = new Gson( ...
人人网的相册可设置为只对好友可见,但是今天一个偶尔的机会发现非好友也可以看到隐私相册,于是顺便就给一个好朋友留了言。
具体描述一下漏洞:
(1) 首先自己要登陆,假设你要偷看的用户是A,然后搜索A的名字(前提你要知道他(她)叫什么哪个学校,户籍,性别等等)。
(2) 发现A的相册是只对好友开放的,不要急,看到地址栏里www.renren.com/后面的数字了吗?那是用户的唯一标识,对A的ID稍微做修改(稍微,就是从这串数字的第二位开始,每次只修改一位)。访问修改后的ID(假设为用户B的ID)所代表的用户首页。如:你要访问的用户A的ID是234164190,将第二位3改为4,修改后的用户B ...
代码:
private boolean connect(String namespace, String endpoint, String function) {
try {
// 连接WS服务器
call = (Call) service.createCall();
// 设置调用方法
call.setOperationName(new QName(namespace, function));
// 设置服务器地址
call.setTargetEndpointAddress(endpoint);
} catch (ServiceExc ...
select schedulerid from circuit where schedulerid not in (null);
查询结果:
|SCHEDULERID|
+----------------------+
结论:任何与null的比较(<,>,=,>=,<=,between and )和 in,not in等等的结果都是false。
心得:养成对select,insert,where子句使用nvl的习惯。警惕子查询的结果中是否有null值。
package com.test.processManagement;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.text.ParseException;
...