wast 是一个轻量级且高性能 java 语言开发框架和工具包,集成了最快的json库之一和最快的yaml 解析库,代码轻量,无任何依赖。
JSON使用方法
// 序列化
Map map = new HashMap();
map.put("msg", "hello, light json !");
String result = JSON.toJsonString(map);
// 序列化到文件
Map map = new HashMap();
map.put("msg", "hello, light json !");
JSON.writeJsonTo(map, new File("/tmp/test.json"));
// 格式化输出
Map map = new HashMap();
map.put("name", "zhangsan");
map.put("msg", "hello, light json !");
JSON.toJsonString(map, WriteOption.FormatOut);
// 反序列化map
String json = "{\"msg\":\"hello, light json !\",\"name\":\"zhangsan\"}";
Map map = (Map) JSON.parse(json);
System.out.println(map);
// 反序列化到指定类型
String json = "{\"msg\":\"hello, light json !\",\"name\":\"zhangsan\"}";
Map map = JSON.parseObject(json, Map.class);
System.out.println(map);
// IO流读取解析
Map result = null;
// 1 读取网络资源 GET
result = JSON.read(new URL("https://developer.aliyun.com/artifact/aliyunMaven/searchArtifactByGav?groupId=spring&artifactId=&version=&repoId=all&_input_charset=utf-8"), Map.class);
// 2 读取输入流
InputStream inputStream = InputStreamTest.class.getResourceAsStream("/sample.json");
result = JSON.read(inputStream, Map.class);
// 3 读取文件
result = JSON.read(new File("/tmp/smaple.json"), Map.class);
YAML使用方法
// yaml字符串
String yamlStr = StringUtils.fromResource("/yaml/t2.yaml");
// 读取文档
YamlDocument yamlDoc = YamlDocument.parse(yamlStr);
// 转换为properties
Properties properties = yamlDoc.toProperties();
System.out.println(properties);
// 转换为map
yamlDoc.toMap();
// 转化为指定bean
YamlTest bean = yamlDoc.toEntity(YamlTest.class);
// 获取根节点
YamlNode yamlRoot = yamlDoc.getRoot();
// 查找node
YamlNode nameNode = yamlRoot.get("/metadata/name");
// 获取/metadata/name
String metadataName = yamlRoot.getPathValue("/metadata/name", String.class);
// 或者 nameNode.getValue();
System.out.println(" metadataName " + metadataName);
// 修改
yamlRoot.setPathValue("/metadata/name", "this is new Value ");
String newMetadataName = (String) nameNode.getValue();
System.out.println(newMetadataName.equals("this is new Value "));
// 反向序列化生成yaml字符串
System.out.println(yamlDoc.toYamlString());
// 输出到文件
yamlDoc.writeTo(new File("/tmp/test.yaml"));
表达式引擎
// 直接运行
Expression.eval("1+1"); // 输出2
Expression.eval("1+1+'a'"); // 输出2a
Map map = new HashMap();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);
Expression.eval("a+b+c",map); // 输出6
// 解析运行
Map map = new HashMap();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);
Expression varExpr = Expression.parse("a + b + c"); // 只需要解析一次
varExpr.evaluate(map); // 输出6
map.put("c", 30);
varExpr.evaluate(map); // 输出33
// 函数使用
Map context = new HashMap();
context.put("tip", "1 ");
context.put("name", "zhangsan, %s");
context.put("msg", "hello");
context.put("type", 1);
context.put("a", 1);
context.put("b", 12);
context.put("c", 111);
context.put("B6_AvgCpuUsed", 1.0);
context.put("B5_AvgCpuUsed", 2.0);
context.put("B4_AvgCpuUsed", 3.0);
context.put("vars", new String[] {"hello"});
EvaluateEnvironment evaluateEnvironment = EvaluateEnvironment.create(context);
evaluateEnvironment.registerStaticMethods(Math.class, String.class);
evaluateEnvironment.registerFunction("min", new ExprFunction<Object, Number>() {
@Override
public Number call(Object... params) {
Arrays.sort(params);
return (Number) params[params.length - 1];
}
});
System.out.println( Expression.eval("@min(@sum(a,b,c), 50, 125, 2, -11)", evaluateEnvironment));
System.out.println( Expression.eval("@max(@sum(a,b,c), 50, 125, 55, 152)", evaluateEnvironment));
一、Emscripten编译优化分为两个步骤 每个源文件编译成目标文件(.bc文件),通过LLVM优化 目标文件编译成js文件 二、Js使用库的两种方式 1. 多个bitcode直接变成js emcc project.bc libstuff.bc -o final.js 2. 多个bitcode先编译成一个,然后在变成js emcc project.bc libstuff.bc -o all
出现这个报错前的操作 因为安装html插件时,装错了,想通过npm uninstall 来删掉重装,结果没删除成功,然后我选择了一种粗暴的方法,直接删掉node-modules,然后通过npm install 重新安装依赖,结果安装不成功,但是使用cnpm安装又没有报错提示,我以为安装好了,当要用webpack打包和用webpack-dev-server运行时就会报错 Error: Cannot
问题内容: 我需要一些想法来实现Java的(真正)高性能内存数据库/存储机制。在存储20,000+个Java对象的范围内,每5秒钟左右更新一次。 我愿意接受的一些选择: 纯JDBC /数据库组合 JDO JPA / ORM /数据库组合 对象数据库 其他存储机制 我最好的选择是什么?你有什么经验? 编辑:我还需要能够查询这些对象 问题答案: 您可以尝试使用Prevayler之类的工具(基本上是一个
我正在用docx4j做一些测试。我需要做的是将复杂的Word文档(2-3页的文本、表格、项目符号列表、图像)转换成XHTML。
我在我的应用程序中创建了第二个DataSource。 我用HikariDataSource创建了它,因为它断开了连接,所以出现了问题。 现在它没有断开,但是很慢 我的配置如下: 爪哇: 有人能告诉我如何提高绩效吗。 它们是表的小查询,分页约为25条记录,需要4秒钟。 我观察到,查询一个select的200条记录需要46秒,而查询只需要2秒。 以前,它们是千分之一秒。 非常感谢。
问题内容: 我正在开始编写Java库以实现高性能的有限状态机。 我知道那里有很多库,但是我想从头开始编写自己的库,因为那里几乎所有的库都构造了自动机,每次只处理一个就优化了。 我想知道在实现这样的高性能库时,SO社区中涉足状态机设计的人们认为最重要/最好的设计原则。 注意事项 生成的自动机通常并不庞大。(〜100-500个州)。 该实现应该能够 扩展 。 该实现应支持 快速转换 (最小化,确定化等
我有一个cron作业方法,它根据用户的特色故事构建用户的故事提要,跟踪类别并跟踪用户。 最终提要按正确顺序添加到以下数据库表中: 用户提要表: Uid 方法如下,包含注释<代码: 对于30名用户,上述方法需要约35秒才能完成<问:我如何改进代码和性能?
imi v1.0.13 版本新增了一个 Swoole\Coroutine\Http\Server 实现的协程服务器。需要 Swoole 4.4+ 才可使用该特性。 该特性是可选的,不影响以前使用的服务器模式。 使用协程服务器特性,依靠 Linux 系统的端口重用机制,系统级的负载均衡,可以让你的多进程 Http 服务处理请求的能力得到提升。 使用 ab,本机->虚拟机(双核+2进程)压测Hello