jsonobject

JVM性能调优记录

↘锁芯ラ 提交于 2019-11-29 22:44:00
今天处理了一次性能问题,记录一下处理的过程。 早上发现几台机器负载非常高,前端nginx的连接数接近2000。 后端的应用服务器的响应情况很忙,最糟糕的情况达到了30多万毫秒。 top看到进程运行情况: PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 3182 root 25 0 1028m 560m 9296 S 289.6 29.6 27:22.26 java 3220 root 25 0 1039m 678m 9308 S 108.3 35.8 27:17.61 java 1 root 15 0 2084 608 524 S 0.0 0.0 0:55.82 init 确定了是应用服务器程序占用了大部分cpu 接着运行top -H -p 3182 看到占用最高的cpu的java进程号。 jstack 显示该jvm进程中所有线程的调用栈已经线程所处的状态(jdk5.0以上支持)。 jstack pid | less 查找上述进程号的十六进制数字,比如nid=0x1613d(小写) 找出对应的进程 java.lang.Thread.State: RUNNABLE at net.sf.json.util.JSONTokener.nextClean(JSONTokener.java:207) at net.sf.json

软工实践-02

北城以北 提交于 2019-11-29 22:17:28
一、GitHub仓库地址 https://github.com/viency-yy/131700146 二、PSP表格 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 30 40 · Estimate · 估计这个任务需要多少时间 840 800 Development 开发 240 180 · Analysis · 需求分析 (包括学习新技术) 120 150 · Design Spec · 生成设计文档 30 20 · Design Review · 设计复审 20 15 · Coding Standard · 代码规范 (为目前的开发制定合适的规范) 20 25 · Design · 具体设计 60 40 · Coding · 具体编码 180 200 · Code Review · 代码复审 30 30 · Test · 测试(自我测试,修改代码,提交修改) 20 30 · Reporting · 报告 20 25 · Test Repor · 测试报告 10 10 · Size Measurement · 计算工作量 5 5 · Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划 60 40 合计 1685 1610 三

Java调用第三方http接口的方式

这一生的挚爱 提交于 2019-11-29 21:49:37
转自:https://www.cnblogs.com/swordfall/p/10757499.html 分类: Java 概述 在实际开发过程中,我们经常需要调用对方提供的接口或测试自己写的接口是否合适。很多项目都会封装规定好本身项目的接口规范,所以大多数需要去调用对方提供的接口或第三方接口(短信、天气等)。 在Java项目中调用第三方接口的方式有: ①通过JDK网络类Java.net.HttpURLConnection; ②通过common封装好的HttpClient; ③通过Apache封装好的CloseableHttpClient; ④通过SpringBoot-RestTemplate; Java调用第三方http接口的方式 2.1 通过JDK网络类Java.net.HttpURLConnection 比较原始的一种调用做法,这里把get请求和post请求都统一放在一个方法里面,直接上代码: 复制代码 import java.io.*; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; /** jdk类HttpURLConnection调用第三方http接口 通常分get和post两种方式 参考资料: http://www

java字符串转json

谁都会走 提交于 2019-11-29 21:49:17
java字符串转json public static void stringToJson(){ //定义字符串 String string = “[{‘name’:‘toke’,‘shuxue’:‘78’,‘yuwen’:‘80’},” +"{‘name’:‘seri’,‘shuxue’:‘20’,‘yuwen’:‘90’}," +"{‘name’:‘heer’,‘shuxue’:‘99’,‘yuwen’:‘56’}]"; try { //字符串转换JSON数组 JSONArray jsonarry = new JSONArray(string); //遍历JSON数组 if(jsonarry.length() > 0){ for (int i = 0;i < jsonarry.length();i++) { //获得json数据 JSONObject jsonObject = jsonarry.getJSONObject(i); //根据key建取值 System.err.println(jsonObject.getString(“shuxue”)); } } } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } } 来源: https://blog.csdn

jsp选择文件夹上传

人走茶凉 提交于 2019-11-29 21:28:12
文件夹数据库处理逻辑 public class DbFolder { JSONObject root; public DbFolder() { this .root = new JSONObject(); this .root.put( "f_id" , "" ); this .root.put( "f_nameLoc" , " 根目录" ); this .root.put( "f_pid" , "" ); this .root.put( "f_pidRoot" , "" ); } /** * 将JSONArray转换成map * @param folders * @return */ public Map<String, JSONObject> toDic(JSONArray folders) { Map<String, JSONObject> dt = new HashMap<String, JSONObject>(); for ( int i = 0 , l = folders.size();i<l;++i) { JSONObject o = folders.getJSONObject(i); String id = o.getString( "f_id" ); dt.put(id, o); } return dt; } public Map<String,

updating json object using java [closed]

房东的猫 提交于 2019-11-29 17:43:38
Let i've an JSON Object like as shown below {"Name":"Manu","Age":"25","Address":""} Updation Read the json object and need to update the address field like as given below {"Name":"Manu","Age":"25","Address":"XXXX"} can anyone please tell me how to update the Address details in the JSON using java My code JSONObject rec = new JSONObject(data); String name = rec.getString("Name"); String age = rec.getString("Age"); String add = rec.getString("Address"); now how to add some information to the address field Update 1 String jsonstring="{Name:Manu,Age:25,Address:''}"; JSONObject object=new

How can I access each key and value in JSONArray

非 Y 不嫁゛ 提交于 2019-11-29 15:42:12
I have a JSONArray as below. How can I access each key and value in it in order. JSONArray = [{"a":1},{"b":2,"c":3},{"d":4},{"e":5,"f":7}] You can try following code: JSONArray jsonArray = new JSONArray("[{\"a\":1},{\"b\":2,\"c\":3},{\"d\":4},{\"e\":5,\"f\":7}]"); for (int i = 0; i < jsonArray.length(); i++) { JSONObject json = jsonArray.getJSONObject(i); Iterator<String> keys = json.keys(); while (keys.hasNext()) { String key = keys.next(); System.out.println("Key :" + key + " Value :" + json.get(key)); } } try below code for nested Json . main method here { String res = "" ;// your json here

SpringBoot集成JWT实现token验证

。_饼干妹妹 提交于 2019-11-29 12:33:42
JWT官网: https://jwt.io/ JWT(Java版)的github地址: https://github.com/jwtk/jjwt 什么是JWT Json web token (JWT) , 是为了在网络应用环境间传递声明而执行的一种基于 JSON 的开放标准((RFC 7519). 定义了一种简洁的,自包含的方法用于通信双方之间以 JSON 对象的形式安全的传递信息。 因为数字签名的存在,这些信息是可信的, JWT可以使用 HMAC 算法或者是 RSA 的公私秘钥对进行签名。 JWT请求流程 image.png 1. 用户使用账号和面发出post请求; 2. 服务器使用私钥创建一个jwt; 3. 服务器返回这个jwt给浏览器; 4. 浏览器将该jwt串在请求头中像服务器发送请求; 5. 服务器验证该jwt; 6. 返回响应的资源给浏览器。 JWT的主要应用场景 身份认证在这种场景下,一旦用户完成了登陆,在接下来的每个请求中包含JWT, 可以用来验证用户身份以及对路由,服务和资源的访问权限进行验证。 由于它的开销非常小,可以轻松的在不同域名的系统中传递,所有目前在 单点登录(SSO) 中比较广泛的使用了该技术。 信息交换在通信的双方之间使用JWT对数据进行编码是一种非常安全的方式, 由于它的信息是经过签名的,可以确保发送者发送的信息是没有经过伪造的。 优点 1.简洁

除了FastJson,你还有选择: Gson简易指南

帅比萌擦擦* 提交于 2019-11-29 08:29:37
前言 这个周末被几个技术博主的同一篇公众号文章 fastjson又被发现漏洞,这次危害可导致服务瘫痪! 刷屏,离之前漏洞事件没多久,fastjson 又出现严重 Bug。目前项目中不少使用了 fastjson 做对象与JSON数据的转换,又需要更新版本重新部署,可以说是费时费力。与此同时,也带给我新的思考,面对大量功能强大的开源库,我们不能盲目地引入到项目之中,众多开源框架中某个不稳定因素就足以让一个项目遭受灭顶之灾。趁着周末,在家学习下同样具备JSON与对象转换功能的优秀开源框架 Gson,并且打算将今后项目使用 fastjson 的地方逐渐换成使用 Gson,记录下学习总结的内容,希望对小伙伴也有所帮助。 本文所涉及所有代码片段均在下面仓库中,感兴趣的小伙伴欢迎参考学习: https://github.com/wrcj12138aaa/gson-actions 版本支持: JDK 8 Gson 2.8.5 JUnit 5.5.1 Lomok 1.18.8 Gson 简介 在正式介绍 Gson 之前,我们可以先从 官方的wiki 看下 Gson 的描述,了解它是什么? Gson is a Java library that can be used to convert Java Objects into their JSON representation. It can also

JSON格式转换,String,Array,List,Map

廉价感情. 提交于 2019-11-29 06:41:09
package cn.itcast.caoke.json; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import net.sf.json.JSONArray; import net.sf.json.JSONObject; public class JsonTest { public static void main(String[] args) { Person person = new Person(); person.setName("caokePerson"); person.setAge(23); // 1.直接放json对象 // 直接new JSONObject 对象 ,像map一样赋值 JSONObject jsonObject = new JSONObject(); jsonObject.put("name", "caoke"); System.out.println("----直接放json对象----"+jsonObject.toString()); // ----直接放json对象----{"name":"caoke"} // 2. 对象转换为json //使用 JSONObject的静态对象方法