小编ilo*_*arn的帖子

糟糕系统设计的代码重构

我是一名初级软件工程师,他接受了接管旧系统的任务.根据我的初步评估,该系统存在一些问题.

  1. 意大利面条代码
  2. 重复的代码
  3. 10k及以上的课程
  4. 使用log4j进行误操作和过度记录
  5. 糟糕的数据库表设计
  6. 缺少源代码控制 - >我为此设置了Subversion
  7. 缺少文档 - >除了阅读代码之外,我不知道业务规则

我该怎么做才能提高系统质量并解决这些问题?我可以考虑使用静态代码分析软件来解决任何不良编码实践.

但是,它无法检测到任何不良设计问题或问题.我该如何逐步解决这些问题?

java refactoring legacy-code

23
推荐指数
5
解决办法
1827
查看次数

使用Web Server + Application Server的Java EE应用程序

是否需要Java EE应用程序使用诸如SUN Java Web Server之类的Web服务器来处理servlet/jsp请求并转发到IBM WebSphere或BEA WebLogic等应用程序服务器?

由于Application Server能够处理这样的servlet/jsp吗?

这种服务器架构有哪些优点/缺点?

java web-applications java-ee

16
推荐指数
1
解决办法
3万
查看次数

业务规则验证的框架/设计模式

我应该使用哪种框架/设计模式进行可能有1000次以上规则验证的应用程序?

我正在处理的系统类型包含许多允许用户输入的输入表单.每个输入表单都有不同的部分.

表格A有A/B/C/D部分.表格B有B/C/D部分

这些商业规则验证中的一些对于两种形式都是通用的,我正在研究重用规则的方法.

如何构建健壮的业务规则验证框架?

java frameworks design-patterns

12
推荐指数
2
解决办法
2万
查看次数

java静态变量和进程

如果我声明一个变量static并将此类编译成可执行jar.如果我使用这样的批处理文件启动此类:

java MyClass
java MyClass
java MyClass
Run Code Online (Sandbox Code Playgroud)

所有3个进程都会共享同一个变量吗?

java

9
推荐指数
1
解决办法
2957
查看次数

java.io.PrintStream上的线程争用

我正在使用Java Mission Control来分析我的应用程序的性能问题.JMC突出显示了Thread Contention和Lock Instances部分下的java.io.PrintStream.

为什么我要面对JDK包的线程争用问题?

在此输入图像描述 在此输入图像描述

java multithreading

6
推荐指数
1
解决办法
173
查看次数

C编程打印字符数组

我有一个声明为:

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)

c cstring

5
推荐指数
2
解决办法
5万
查看次数

页表条目的引用和修改位如何影响分页?

我正在阅读维基百科上的分页和内存管理单元.页表项的引用和修改位如何影响分页的操作?

en.wikipedia.org/wiki/Paging http://en.wikipedia.org/wiki/Memory_management_unit http://wiki.osdev.org/Paging

paging operating-system memory-management

5
推荐指数
1
解决办法
6288
查看次数

如何分析Java源代码并确保它是线程安全的

我正在阅读java代码以确保它是线程安全的.

据我所知,方法中的任何局部变量都是线程安全的,因为它属于堆栈内存地址.任何类/实例变量都不是线程安全的,因为它属于堆内存,由其他线程共享.

根据经验,我可以在触及类变量的每个方法上放置一个synchronized关键字.

是否有任何eclipse插件,或者我可以分析/防止多线程问题的规则?

java multithreading thread-safety

5
推荐指数
1
解决办法
3212
查看次数

在oracle.jdbc.driver.T4CConnection上找到的锁定对象

我正在使用JMC执行应用程序分析,我没有看到任何锁定/线程争用,如下面的屏幕截图所示.

在此输入图像描述 在此输入图像描述 在此输入图像描述 我在下面运行SQL(每隔几秒)也没有返回任何结果.

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)

java database oracle multithreading

5
推荐指数
1
解决办法
7029
查看次数

AES 如何使用不同的 IV 进行解密?

我正在尝试了解有关 AES 加密的更多信息。AES 加密同时使用密钥和初始化向量(IV)进行加密,但由于每个IV都不同,那么AES如何解密密文并返回明文呢?

\n\n

\xc2\xa0

\n
public 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 encryption cryptography

5
推荐指数
1
解决办法
1万
查看次数