我没有在网上找到任何标准的开源sql formatter eclipse插件.我正在使用eclipse helios.我可以找到Edit - > FormatSQL但这似乎不起作用.在http://ventralnet.blogspot.in/2010/11/sql-beautifier-eclipse-plugin.html找到一个, 但格式化不好.任何建议都会有所帮助.有关信息我正在使用sqlserver sql脚本.
我知道当我们创建字符串文字时,它会进入permgenspace.我的问题是它是否会存在于jvm的生命周期中,即使该字符串文字是方法本地的.例如,我有以下代码片段: -
private static void testString1(){
String str1="tetingLiteral";
}
private static void testString2(){
String str2="tetingLiteral";
}
Run Code Online (Sandbox Code Playgroud)
现在从主要方法我打电话
testString1();
testString12();
Run Code Online (Sandbox Code Playgroud)
将str1和str2引用到相同的内存位置.
我的理解是他们将引用相同的内存位置(即使在方法内创建字符串文字,它将在jvm的生命周期内保留).但仍然想确认它,因为我无法以编程方式检查它becoz无法打印字符串内存位置
我过去曾听过不同人的术语Data Driven
和 Event Driven
模型。我曾经用过google,但是这些术语对我来说仍然很模糊,因为它们看起来都和我相似
数据驱动编程是一种编程模型,其中数据本身控制程序的流程(而不是程序逻辑),在事件驱动编程的情况下,它是事件而不是数据本身控制程序的流程。
每个地雷的理解事件也是数据。例如,在基于员工的Web应用程序中-如果用户单击“创建员工”按钮,则这里的事件是创建员工(也仅是一种数据),而数据是与员工相关的信息。
现在,首先在服务器上将是事件,它将决定程序的流程,然后数据(与员工相关的信息)也将控制执行流程,例如是否将执行永久雇员不同的方法以及是否将临时雇员不同的方法
那么,不是每件事都是数据驱动的体系结构吗?如果没有,它们之间有什么区别?任何基于网络的示例都将有所帮助
下面是卡夫卡文档 的public ConsumerRecords<K,V> poll(long timeout)
获取使用其中一个subscribe/assign API指定的主题或分区的数据.在轮询数据之前没有订阅任何主题或分区是错误的.在每次轮询时,消费者将尝试使用最后消耗的偏移量作为起始偏移量并按顺序提取.最后消耗的偏移量可以通过seek(TopicPartition,long)手动设置,也可以自动设置为订阅分区列表的最后一个提交偏移量
我的问题是谁(经纪人或消费者或动物园主管)负责维护偏移量以及存储位置(存储器或光盘)?如果消费者将其保留在内存中,消费者是否会从开始阅读它或消费者应用程序需要保留在光盘中?
我有多模块应用程序。更明确地说,这些是 maven 模块,其中高级模块依赖于低级模块。以下是一些模块:-
user-management
common-services
utils
emails
Run Code Online (Sandbox Code Playgroud)
例如:- 如果user management
模块想要使用来自utils
,它可以调用它的服务,因为在用户管理下已经注入了 utils 的依赖项。为了真正遵循微服务架构转换/调用我的项目,我相信我需要将每个模块转换为可独立部署的服务,其中每个模块都是一个战争模块,并通过 http(主要作为 resful Web 服务)提供其服务。这是正确的还是需要注意其他任何事情?
可能每个模块现在都必须受到保护并且身份验证层也是如此?
如果这就是微服务的关键,我真的不明白当有人问你是否在我看来从事过微服务这不是工具/平台/框架,而是一个简单的概念,将你的整体应用程序划分为更小的可部署模块集,其服务可用通过 HTTP。不是吗?可能是它的另一个流行词。
更新:- 显然,微服务方式有一些优势,例如独立的单元可测试模块,可扩展,因为它可以部署在单独的机器上,松散耦合等,但我认为我还需要处理两个复杂的问题
我在dao中有以下代码片段
String GET_CUSTOMER="SELECT * from customer where custName=:custName"
Session session = getHibernateUtil().getSession();
SQLQuery query = session.createSQLQuery(GET_CUSTOMER);
query.setParameter("custName", custName);
query.setResultTransformer(Transformers
.aliasToBean(Customer.class));
Customer custData = (Customer) query
.uniqueResult();//line
Run Code Online (Sandbox Code Playgroud)
Customer表有一些int列,其中一些值为null.现在在line1我得到错误Null值被分配给Customer.Address的原始类型setter的属性
在hibernate/query/Transformer中有没有办法自动将空值转换为0?我刚刚提到了一个表即客户,但是有各种连接表,其中包含各种列中的int值为null,因此我不想在每个表的查询中处理.
更新: -客户不是Hibernate实体.它与int类型的实例字段pojo
我知道将 BufferedInpurStream 包裹在 FileInputStream 周围可以使读取操作更快,但试图弄清楚如何实现。我查看了 BufferedInpurStream 的源代码并得到了一些东西。这是我的理解
InputStream in = new BufferedInpurStream(new FileInputStream(filename));
int byteToRead;
while((byteToRead = in.read()) != -1)
Run Code Online (Sandbox Code Playgroud)
当我执行 bufferedInpurStream.read() 时,在内部,它会首先一次将字节块读取到缓冲区中,然后从缓冲区中一个一个地读取每个字节,而不是从文件中读取它(这会更昂贵)。一旦该缓冲区是空的,它将再次用字节块填充它
而使用 FileInputStream.read() 时,从文件中逐个字节执行读取操作,这是非常昂贵的
这种理解正确吗?
在浏览了 Google 上的一些资源和堆栈溢出(如下所述)之后,我对何时使用什么有了高层次的理解,但也有几个问题
我的理解 :
当用作纯内存内存数据库时,两者都具有相当的性能。但是对于完整的数据集无法放入内存或即使可以放入(但会增加成本)的大数据,AS(aerospike) 可以很好地适应,因为它提供了可以将索引保存在内存中的模式和 SSD 中的数据。我相信性能会有所下降(与完全在内存数据库中相比,尽管 AS 处理从 SSD 读取/写入的方式,它比传统磁盘 I/O 更快)但节省了成本并提供性能然后在磁盘上完成数据。因此,当完整的数据可以放入内存时,两者都可以同样好,但是当内存受到限制时,AS 可能是很好的情况。那正确吗 ?
另外据说AS提供了丰富且易于设置的集群功能,而redis中的一些集群功能需要在应用程序中处理。它仍然保持良好还是直到几年前都是真的(我相信,因为我看到 redis 也提供了集群功能)?
我是正则表达式的新手,我正在浏览正则表达式量词部分.我对*
量词有疑问.以下是*
量词的定义:
X*
- 找不到或多个字母X..*
- 任何字符序列根据上面的定义,我写了一个小程序:
public static void testQuantifier() {
String testStr = "axbx";
System.out.println(testStr.replaceAll("x*", "M"));
//my expected output is MMMM but actual output is MaMMbMM
/*
Logic behind my expected output is:
1. it encounters a which means 0 x is found. It should replace a with M.
2. it encounters x which means 1 x is found. It should replace x with M.
3. it encounters b which means …
Run Code Online (Sandbox Code Playgroud) 网上的大部分地方,我得到以下有关堆参数的信息
-Xms<size> set initial Java heap size
-Xmx<size> set maximum Java heap size
这是我提到-Xms 512M -Xmx 2048M
参数时的理解/问题,
-Xms :-我的理解是,如果我的 java 进程实际上只需要 200M ,提到 -Xms 512M ,java 进程仍将只分配 200M(需要实际内存)而不是 500M 。但是,如果我已经知道我的应用程序将在启动时占用这 512M 内存,那么指定小于会对性能产生影响,因为无论如何需要调整堆块大小,这是一项代价高昂的操作。
根据与我的同事的讨论,默认情况下 GC 将在 Xms 值的 60% 上触发。那是对的吗 ?如果是,是依赖 Xms 值的次要 GC 还是完整 GC?
Xms 更新:- 在读取JVM 堆参数后这似乎是正确的,但默认情况下值再次为 60%,它是依赖于 Xms 值的次要 GC 还是完整 GC?
-Xmx:-我的理解是提到了 -Xmx 2048M ,java 进程实际上会保留 2048M 内存供操作系统使用,这样另一个进程就无法获得它的份额。如果 java 进程无论如何需要超过 2048M 的内存,那么内存不足会被抛出。
此外,我相信 Full GC 触发器与 -Xmx 的值存在某种关系。因为我观察到的是当内存接近 Xmx …
java ×7
sql ×2
aerospike ×1
apache-kafka ×1
data-driven ×1
eclipse ×1
event-driven ×1
formatting ×1
heap-memory ×1
hibernate ×1
memory ×1
paradigms ×1
redis ×1
regex ×1
sql-server ×1
string ×1