使用GSON JsonReader处理大字段的最佳方法

我得到了一个java.lang.OutOfMemoryError:Java堆空间,即使使用GSON Streaming也是如此。 {“result”:”OK”,”base64″:”JVBERi0xLjQKJeLjz9MKMSAwIG9iago8PC….”} base64最长可达200​​Mb。 GSON占用的内存要多得多,(3GB)当我尝试将base64存储在一个变量中时,我得到一个: Exception in thread “main” java.lang.OutOfMemoryError: Java heap space at java.util.Arrays.copyOf(Arrays.java:2367) at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:130) at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:114) at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:535) at java.lang.StringBuilder.append(StringBuilder.java:204) at com.google.gson.stream.JsonReader.nextQuotedValue(JsonReader.java:1014) at com.google.gson.stream.JsonReader.nextString(JsonReader.java:815) 处理这种领域的最佳方法是什么?

不使用该字段的值

在private int count=0;之前,我在eclipse上得到了上述警告private int count=0; 这是我的代码: package synchronise; public class Mysync { private int count=0; public Mysync() { // TODO Auto-generated constructor stub } public static void main(String[] args) { // TODO Auto-generated method stub Mysync sync = new Mysync(); sync.dowork(); } public void dowork(){ Thread mysync = new Thread(new Runnable() { public void run() […]

在Java中将对象添加到固定集合(Array)中的方法

我创建了一个inheritance层次结构,其中包含一个名为Employe的超类和两个名为Lecturer和Assistant的子类。 除此之外,我还创建了一个名为Subject的类,它有一系列员工。 我想在这里做的是创建一个方法,将Employe对象添加到数组中。 我做了同样适用于ArrayList的那个,但它似乎不适用于Arrays。 如果可能的话,我怎样才能创建一个与数组做同样事情的方法? public class Subject { private String subjectcode; private Employe[] employees; public Subject(String subjectcode) { this.subjectcode = subjectcode; Employe[] employees = new Employe[5]; } public void setSubjectcode(String code) { this.subjectcode = code; } public String getSubjectcode() { return this.subjectcode; } public boolean addStaff(Employe employe) { if (employe instanceof Lecturer || employe […]

错误NullPointerException:lock == null

任何人都可以帮助我解决这个错误,当我运行应用程序并搜索ID时,从MySQL数据库选择值到Android,它总是说(无效的IP地址)… 我的Web服务器上有一个PHP文件,它连接到WampServer数据库并检索返回到Android应用程序的值。 String id String name; InputStream is=null; String result=null; String line; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final EditText e_id=(EditText) findViewById(R.id.editText1); Button select=(Button) findViewById(R.id.button1); select.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub id=e_id.getText().toString(); select(); } }); } public void select() { ArrayList nameValuePairs = new ArrayList(); […]

从Base64编码的字符串中检索ECC公钥

我一直在尝试使用Base64编码的ECC公钥创建java.security.PublicKey的实例。 MainActivity.java @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); try { byte[] data = decodePublicKey(“AsIAEFjzIcX+Kvhe8AmLoGUc8aYAEAwf5ecREGZ2u4RLxQuav/A=”); PublicKey publicKey = loadPublicKey(“secp128r1”, data); Log.d(TAG, publicKey.toString()); } catch (SQLException | IOException | GeneralSecurityException e) { Log.e(TAG, e.getMessage(), e); } } private byte[] decodePublicKey(String s) throws UnsupportedEncodingException { return Base64.decode(s, Base64.DEFAULT); } public PublicKey loadPublicKey(String curve, byte[] data) throws […]

@JsonView注释如何用于嵌套实体?

我试图为我的嵌套实体使用@JsonView注释。 更清楚的是,假设我们有2个实体,每个实体都有自己的视图类。 public class JsonViewAddress { //some view classes } public class Address { //fields annotated by JsonViewAddress’s classes and @JsonProperty } public class JsonViewPerson { //some view classes } public class Person { //some fields (yes annotated with JsonViewPerson classes and @JsonProperty) //also assume that this is annotated with any JsonViewPerson’s class. private Address […]

使用Oauth将Java应用程序与GAE应用程序连接起来

我有一个Java应用程序和一个GAE应用程序,它将C2DM消息发送到Android设备。 现在我想让java应用程序的用户能够通过他们的Google帐户登录到GAE应用程序。 我是否正确,我需要使用oauth来实现这一点? 一点点背景: +———–+ +———-+ | JAVA App | send Message to —> | GAE App | +———–+ +———-+ ^ | | Notify Client | —————————- | | [YES] —> Start delivering C2DMessage 我希望我的ASCII图片更容易理解;) 不知何故,我需要允许用户使用他们的google凭据登录java应用程序,如果我向服务器发送消息,则将用户数据与消息一起发送到服务器。 我真的不知道如何做到这一点。 如果你能告诉我,那么我是在正确或错误的轨道上会很棒。 任何建议我都会很高兴。 谢谢,马克

如何收听电子邮件

有没有办法收听传入/传出的电子邮件或直接访问收件箱? 我读到,由于Android SDK中没有默认的邮件客户端,除非手机上使用的客户端实现了一些自定义机制,否则它是不可能的。 这仍然是这样吗?

在创建jar时使用maven pom:test-jar有时会说JAR将为空 – 没有内容被标记为包含

虽然通过jar:test-jar创建带有测试类的jar:test-jar但它有时会说: JAR将为空 – 没有内容标记为包含! Test-jar不包含任何测试类。 但有时候,所有测试类都会创建正确的测试jar。 在我的pom中我需要提到的是在没有测试类的情况下运行测试模块jar(仅编译) 关于maven pom需要什么maven命令

如何在类中顺序执行两个线程

我正在研究java中的线程编程,我遇到了一个问题,我必须一个接一个地执行2个线程。 下面是简要抽象我的问题的代码片段。 class A{ //default execute method of this class String a=”thread1″; String b=”thread2″; public void execute(){ if(a==”thread1″){ CreateThread1 t1 = new CreateThread1(this); t1.call(); } else if(b==”thread2″) { CreateThread1 t2 = new CreateThread1(this); t2.call(); } }//end of execute public void UpdateUI(){ try{ Display.getDefault.asyncExec(new Runnable(){ public void run(){ //ui update code here } }); } catch(SWTException […]