我是一名初级软件工程师,他接受了接管旧系统的任务.根据我的初步评估,该系统存在一些问题.
我该怎么做才能提高系统质量并解决这些问题?我可以考虑使用静态代码分析软件来解决任何不良编码实践.
但是,它无法检测到任何不良设计问题或问题.我该如何逐步解决这些问题?
是否需要Java EE应用程序使用诸如SUN Java Web Server之类的Web服务器来处理servlet/jsp请求并转发到IBM WebSphere或BEA WebLogic等应用程序服务器?
由于Application Server能够处理这样的servlet/jsp吗?
这种服务器架构有哪些优点/缺点?
我应该使用哪种框架/设计模式进行可能有1000次以上规则验证的应用程序?
我正在处理的系统类型包含许多允许用户输入的输入表单.每个输入表单都有不同的部分.
表格A有A/B/C/D部分.表格B有B/C/D部分
这些商业规则验证中的一些对于两种形式都是通用的,我正在研究重用规则的方法.
如何构建健壮的业务规则验证框架?
如果我声明一个变量static并将此类编译成可执行jar.如果我使用这样的批处理文件启动此类:
java MyClass
java MyClass
java MyClass
Run Code Online (Sandbox Code Playgroud)
所有3个进程都会共享同一个变量吗?
我正在使用Java Mission Control来分析我的应用程序的性能问题.JMC突出显示了Thread Contention和Lock Instances部分下的java.io.PrintStream.
为什么我要面对JDK包的线程争用问题?
我有一个声明为:
char *array[size];
Run Code Online (Sandbox Code Playgroud)
当我表演时
printf("%s", array);
Run Code Online (Sandbox Code Playgroud)
它给了我一些垃圾字符,为什么会这样呢?
http://www.cplusplus.com/reference/clibrary/cstdio/printf/
这个url表示printf的格式为:`int printf(const char*format,...);
#include <stdio.h>
#include <string.h>
#define size 20
#define buff 100
char line[buff];
int main ()
{
char *array[100];
char *sep = " \t\n";
fgets(line, buff, stdin);
int i;
array[0] = strtok(line, sep);
for (i = 1; i < size; i++) {
array[i] = strtok(NULL, sep);
if (array[i] == NULL)
break;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我正在阅读维基百科上的分页和内存管理单元.页表项的引用和修改位如何影响分页的操作?
en.wikipedia.org/wiki/Paging http://en.wikipedia.org/wiki/Memory_management_unit http://wiki.osdev.org/Paging
我正在阅读java代码以确保它是线程安全的.
据我所知,方法中的任何局部变量都是线程安全的,因为它属于堆栈内存地址.任何类/实例变量都不是线程安全的,因为它属于堆内存,由其他线程共享.
根据经验,我可以在触及类变量的每个方法上放置一个synchronized关键字.
是否有任何eclipse插件,或者我可以分析/防止多线程问题的规则?
我正在使用JMC执行应用程序分析,我没有看到任何锁定/线程争用,如下面的屏幕截图所示.
select
(select username from v$session where sid=a.sid) blocker,
a.sid,
' is blocking ',
(select username from v$session where sid=b.sid) blockee,
b.sid
from
v$lock a,
v$lock b
where
a.block = 1
and
b.request > 0
and
a.id1 = b.id1
and
a.id2 = b.id2;
Run Code Online (Sandbox Code Playgroud)
什么可能是锁数据库连接的原因?它可能是数据库记录/表锁吗?
下面是我在程序执行期间提取的线程转储,它似乎永远在运行.
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
at java.net.SocketInputStream.read(SocketInputStream.java:170)
at java.net.SocketInputStream.read(SocketInputStream.java:141)
at oracle.net.ns.Packet.receive(Packet.java:283)
at oracle.net.ns.DataPacket.receive(DataPacket.java:103)
at oracle.net.ns.NetInputStream.getNextPacket(NetInputStream.java:230)
at oracle.net.ns.NetInputStream.read(NetInputStream.java:175)
at oracle.net.ns.NetInputStream.read(NetInputStream.java:100)
at oracle.net.ns.NetInputStream.read(NetInputStream.java:85)
at oracle.jdbc.driver.T4CSocketInputStreamWrapper.readNextPacket(T4CSocketInputStreamWrapper.java:123)
at oracle.jdbc.driver.T4CSocketInputStreamWrapper.read(T4CSocketInputStreamWrapper.java:79)
at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1122)
at oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:1099)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:288)
at …
Run Code Online (Sandbox Code Playgroud) 我正在尝试了解有关 AES 加密的更多信息。AES 加密同时使用密钥和初始化向量(IV)进行加密,但由于每个IV都不同,那么AES如何解密密文并返回明文呢?
\n\xc2\xa0
\npublic static byte[] encrypt_cbc(SecretKey skey, String plaintext) {\n /* Precondition: skey is valid; otherwise IllegalStateException will be thrown. */\n try {\n byte[] ciphertext = null;\n Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");\n final int blockSize = cipher.getBlockSize();\n byte[] initVector = new byte[blockSize];\n (new SecureRandom()).nextBytes(initVector);\n IvParameterSpec ivSpec = new IvParameterSpec(initVector);\n cipher.init(Cipher.ENCRYPT_MODE, skey, ivSpec);\n byte[] encoded = plaintext.getBytes(java.nio.charset.StandardCharsets.UTF_8);\n ciphertext = new byte[initVector.length + cipher.getOutputSize(encoded.length)];\n for (int …
Run Code Online (Sandbox Code Playgroud) java ×8
c ×1
cryptography ×1
cstring ×1
database ×1
encryption ×1
frameworks ×1
java-ee ×1
legacy-code ×1
oracle ×1
paging ×1
refactoring ×1