小编Moh*_*lha的帖子

在java中增加线程启动性能

有没有办法提高Thread.start方法的性能.因为我知道Thread.start将在一个单独的线程中调用胎面的run方法,但我发现它比调用上下文中的简单方法调用需要更多的时间.

java performance multithreading

4
推荐指数
1
解决办法
2580
查看次数

JTable所有列都对齐了

有没有办法同时对齐jtable中的所有列?使用这个:

DefaultTableCellRenderer rightRenderer = new DefaultTableCellRenderer();
rightRenderer.setHorizontalAlignment( JLabel.RIGHT );
JTAB_TABLE.getColumnModel().getColumn(0).setCellRenderer( rightRenderer );
Run Code Online (Sandbox Code Playgroud)

我会让我只对齐一列,但我需要对齐所有列.

java swing jtable alignment tablecellrenderer

2
推荐指数
1
解决办法
5033
查看次数

提高 AES 在 Java 中的性能

在java中使用加密库的速度不稳定第一轮比其他轮需要很多时间,一段时间后执行加密所需的时间是稳定的,这是为什么以及如何从一开始就达到稳定,如果需要一些intail代码我可以做到,但我确实知道需要调用 encrypt 方法来花费大量时间,请查看代码和包含结果的最后一行。

此类包含用于加密/解密的静态方法

package karp.generalutil.common;

import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;

import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.KeyGenerator;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;


public class Encryptor {

/**
 * @param args
 */

static Cipher eCipher,dCipher;

public Encryptor()
{
    try {
        eCipher=Cipher.getInstance("AES");
        dCipher=Cipher.getInstance("AES");
    } catch (NoSuchAlgorithmException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (NoSuchPaddingException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }


}

/// for test
public static void main (String args[])
{
try {
    KeyGenerator …
Run Code Online (Sandbox Code Playgroud)

java aes

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

方法的表现

我打电话给某个方法当我单独使用它时需要11523纳秒的平均值(10000次调用),但是当我从另一个类的上下文中调用它时需要大约95721

方法体是

public static byte [] validateRequest(KARPPacket karpPacket)
{

try {
    long before,time;
    before =System.nanoTime();


    byte [] encryptedTicket=karpPacket.getTicket();
    byte[] decryptedTicket=null;
    if(encryptedTicket==null)
        return null;
    if(encryptedTicket.length%16==0)
    {



        decryptedTicket = Encryptor.decrypt(encryptedTicket, ClientWindow.getSecretKey());
        time=System.nanoTime()-before;
        System.out.println(time);

         if(karpPacket.getSenderProtocolAddressAsString().equals(getSrcAddressFromTicket(decryptedTicket)))
         {
            ClientTicketManager.getArpCash().put(karpPacket.getSenderProtocolAddressAsString(), karpPacket.getSenderHardwareAddressFormatted());


            return decryptedTicket;
         }


       return decryptedTicket;


    }

    return null;

    } catch (Exception e) {

        e.printStackTrace();
        return null;
    } 
Run Code Online (Sandbox Code Playgroud)

为什么这样以及如何提高其性能.我希望这个代码足够了

这是encryptor.decrypt方法

public static byte[] decrypt(byte [] encryptedByteArray,String keyString)throws NoSuchAlgorithmException, 
                                                            NoSuchPaddingException, InvalidKeyException,
                                                            IllegalBlockSizeException, BadPaddingException
{
    SecretKey key=loadKey(keyString);

byte[] clearByteArray;

Cipher dCipher=Cipher.getInstance("AES");
dCipher.init(Cipher.DECRYPT_MODE,key );
clearByteArray=dCipher.doFinal(encryptedByteArray);
return clearByteArray;
Run Code Online (Sandbox Code Playgroud)

}

和加载密钥 …

java

0
推荐指数
1
解决办法
152
查看次数