- 1
if (loggedInUser.getEmail().equalsIgnoreCase( "" ) ) { ... }
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+81
if (loggedInUser.getEmail().equalsIgnoreCase( "" ) ) { ... }
+70
public int someGetCountMethod() {
try {
ResultSet rs2 = db.select("call someGetCountMethod('')");
rs2.first();
return rs2.getInt(1);
} catch (Exception ex) {
return 0;
}
}
где-то откапал вот такое
+80
private String nextUTF8Character() throws IOException, CharacterCodingException
{
int iCodePoint = 0;
int byte1, byte2, byte3, byte4;
byte1 = is.read();
if (byte1 == -1)
return null;
// проверяем является ли первый бит нулевым
if ((byte1 & 0x80) == 0)
{
// один байт
iCodePoint = byte1 & 0x7F;
return new String(Character.toChars(iCodePoint));
}
byte2 = is.read();
if (byte2 == -1)
return null;
if ((byte1 & 0xE0) == 0xC0 && (byte2 & 0xC0) == 0x80)
{
// два байта
iCodePoint = ((byte1 & 0x1F) << 6) | (byte2 & 0x3F);
if (iCodePoint > 0x7F)
return new String(Character.toChars(iCodePoint));
else
throw new CharacterCodingException();
}
byte3 = is.read();
if (byte3 == -1)
return null;
if ((byte1 & 0xF0) == 0xE0 && (byte2 & 0xC0) == 0x80 && (byte3 & 0xC0) == 0x80)
{
// три байта
iCodePoint = ((byte1 & 0x0F) << 12) | ((byte2 & 0x3F) << 6) | (byte3 & 0x3F);
if (iCodePoint > 0x7FF)
return new String(Character.toChars(iCodePoint));
else
throw new CharacterCodingException();
}
byte4 = is.read();
if (byte4 == -1)
return null;
if ((byte1 & 0xF8) == 0xF0 && (byte2 & 0xC0) == 0x80 &&
(byte3 & 0xC0) == 0x80 && (byte4 & 0xC0) == 0x80)
{
// четыре байта
iCodePoint = ((byte1 & 0x07) << 18) | ((byte2 & 0x3F) << 12) |
((byte3 & 0x3F) << 6) | (byte4 & 0x3F);
if (iCodePoint > 0x0FFFF)
return new String(Character.toChars(iCodePoint));
else
throw new CharacterCodingException();
}
throw new CharacterCodingException();
}
Мегаоптимизированный код для получения букафф в кодироффке UTFфф-8
По данным профилировщика именно этот фрагмент самый тормозной в моей сетевой проге
+77
int min = 10;
int max = 4095;
for (SomeClass cc : someList) {
if ( cc.getMinVlan( ) != null ) min = cc.getMinVlan( ) > min ? cc.getMinVlan( ) : min;
if ( cc.getMaxVlan( ) != null ) max = cc.getMaxVlan( ) < max ? cc.getMaxVlan( ) : max;
}
Таким образом суровые калифорнийские мужыки ищут большой диапазон, куда можно поместить кучку маленьких диапазончиков.
+75
private static NavigableSet<Integer> availableVlans = populate( );
private static NavigableSet<Integer> populate( ) {
NavigableSet<Integer> list = new ConcurrentSkipListSet<Integer>( );
for ( int i = 1; i < 4095; i++ )
list.add( i );
return list;
}
public static void trim( int min, int max ) {
NavigableSet<Integer> newVlanList = Sets.newTreeSet( );
for ( int i = min; i < max; i++ )
newVlanList.add( i );
newVlanList.removeAll( availableVlans );
availableVlans.removeAll( availableVlans.headSet( min ) );
availableVlans.removeAll( availableVlans.tailSet( max ) );
for ( int i = min; i < max; i++ ) {
if ( !newVlanList.contains( i ) ) {
availableVlans.add( i );
}
}
}
Очередной кусок калифорнийского кода.
+74
List<String> runningVmIds = new ArrayList<String>( );
for ( VmInfo runVm : request.getVms( ) ) {
runningVmIds.add( runVm.getInstanceId( ) );
}
for ( String vmId : VmInstances.getInstance( ).getKeys( ) ) {
if ( runningVmIds.contains( vmId ) ) {
continue;
}
VmInstance vm = null;
try {
vm = VmInstances.getInstance( ).lookup( vmId );
long splitTime = vm.getSplitTime( );
if ( splitTime > SHUT_DOWN_TIME ) {
VmInstances.getInstance( ).disable( vm.getName( ) );
vm.resetStopWatch( );
vm.setState( VmState.TERMINATED );
vm.setReason( INSTANCE_EXPIRED );
SystemState.cleanUp( vm );
}
} catch ( NoSuchElementException e ) {}
}
List<String> knownVmIds = new ArrayList<String>( );
knownVmIds.addAll( VmInstances.getInstance( ).getKeys( ) );
if ( knownVmIds.removeAll( runningVmIds ) ) {//<-- active registered vms not reported in describe
for ( String vmId : knownVmIds ) {
VmInstance vm = null;
try {
vm = VmInstances.getInstance( ).lookup( vmId );
long splitTime = vm.getSplitTime( );
if ( splitTime > SHUT_DOWN_TIME ) {
VmInstances.getInstance( ).disable( vm.getName( ) );
vm.resetStopWatch( );
vm.setState( VmState.TERMINATED );
vm.setReason( INSTANCE_EXPIRED );
SystemState.cleanUp( vm );
}
} catch ( NoSuchElementException e ) {
/* should never happen, just pulled the key set, if it does ignore it */
}
}
}
Я, наверно, тупой и ещё мало кофе с утра выпил, но мне кажется, что один из циклов тут явно лишний...
+79
public String FormatDocumentNumber(String docNum)
{
int len = docNum.length();
int lenDiff = len - Integer.toString(this.document_num).length();
char[] arr = docNum.toCharArray();
char[] number = Integer.toString(this.document_num).toCharArray();
for(int i=0; i<len; i++)
{
arr[i] = '0';
}
for(int i=0; i<number.length; i++ )
{
arr[lenDiff+i] = number[i];
}
StringBuffer sb = new StringBuffer();
for(int i=0; i<len; i++)
{
sb.append(arr[i]);
}
return sb.toString();
}
Как сделать красивую функцию, которая формирует строку определенной длины с числом с ведущими нулями?
+81
Network notwork = null;
Ну и естественно, что нихрена не работает...
+74
public void write(byte[] bytesToSend) {
// System.out.println("Write begin.");
try {
socket.setSoTimeout(10000);
packageID = 0;
// Add bytes to send
saveBytesToPackeges(bytesToSend);
// Begin new Thread to be sure it was delivered
mySendChecker = new SendChecker();
Thread myThread = new Thread(mySendChecker);
myThread.start();
byte[] buf2 = new byte[50];
// Sending number of packeges
byte[] buf = bytesFromInt(numberOfPackages);
for (int i = 0; i < 4; i++) {
buf2[i] = buf[i];
}
packageID = -2;
buf = packetFromBytes(buf2, sizeOfPackage - 4);
DatagramPacket myPacket = new DatagramPacket(buf, buf.length,
addressToSendTo, portToSendTo);
socket.send(myPacket);
mySendChecker.setPacket(-2, myPacket);
// recieve answer
socket.receive(myPacket);
buf = myPacket.getData();
mySendChecker.removePacket(-2);
// send delieverer
buf = packetFromBytes(buf2, sizeOfPackage - 4);
socket.send(myPacket);
// starting to send data
for (int i = 0; i < numberOfPackages; i++) {
myPacket = new DatagramPacket(bytesToSendSave[i],
bytesToSendSave[i].length, addressToSendTo,
portToSendTo);
socket.send(myPacket);
mySendChecker.setPacket(i, myPacket);
}
// start to recieve answers
int numberOfPackegeRecieved = 0;
while (true) {
buf = new byte[8];
if (mySendChecker.isEmpty()) {
break;
}
myPacket = new DatagramPacket(buf, buf.length);
socket.receive(myPacket);
buf = myPacket.getData();
numberOfPackegeRecieved = intFromBytes(buf, 4);
if (-3 != intFromBytes(buf, 4)) {
continue;
}
numberOfPackegeRecieved = intFromBytes(buf, 0);
mySendChecker.removePacket(numberOfPackegeRecieved);
myPacket = new DatagramPacket(buf, buf.length, addressToSendTo,
portToSendTo);
socket.send(myPacket);
}
buf = bytesFromInt(-5);
myPacket = new DatagramPacket(buf, buf.length, addressToSendTo,
portToSendTo);
socket.send(myPacket);
mySendChecker.setPacket(-5, myPacket);
// System.out.println("WRITE Sending -5");
while (true) {
buf = new byte[4];
myPacket = new DatagramPacket(buf, buf.length);
socket.receive(myPacket);
buf = myPacket.getData();
if (-5 == intFromBytes(buf, 0)) {
// System.out.println("WRITE recieved -5");
break;
}
}
mySendChecker.end();
socket.setSoTimeout(100);
while (true) {
try {
socket.receive(myPacket);
} catch (SocketTimeoutException e) {
break;
}
}
socket.setSoTimeout(0);
// System.out.println("Write end.");
... TO BE CONTINUED ...
Лучшая реализация потокового протокола поверх UDP среди студентов. Остальное в таком же стиле.
+76
long[] times = new long[9];
times[0] = System.currentTimeMillis();
initPsrList();
times[1] = System.currentTimeMillis();
initPsrHierarchy();
times[2] = System.currentTimeMillis();
initPsrCheckList()
times[3] = System.currentTimeMillis();
initTranslationTables();
times[4] = System.currentTimeMillis();
initTranslationInfo()
times[5] = System.currentTimeMillis();
initVoltage();
times[6] = System.currentTimeMillis();
initElectroMetterPrecision();
times[7] = System.currentTimeMillis();
initMeasTransformers();
times[8] = System.currentTimeMillis();
long diff;
System.out.println("\n\n\n\n******************************************************************");
diff = times[1] - times[0];
System.out.println("-- initPsrList() = " + diff + "ms");
diff = times[2] - times[1];
System.out.println("-- initPsrHierarchy() = " + diff + "ms");
diff = times[3] - times[2];
System.out.println("-- initPsrCheckList() = " + diff + "ms");
diff = times[4] - times[3];
System.out.println("-- initTranslationTables() = " + diff + "ms");
diff = times[5] - times[4];
System.out.println("-- initTranslationInfo() = " + diff + "ms");
diff = times[6] - times[5];
System.out.println("-- initVoltage() = " + diff + "ms");
diff = times[7] - times[6];
System.out.println("-- initElectroMettersPrecision() = " + diff + "ms");
diff = times[8] - times[7];
System.out.println("-- initMeasTransformers() = " + diff + "ms");
diff = times[8] - times[0];
System.out.println("total = " + diff + "ms");
System.out.println("\n******************************************************************\n\n\n\n ");
Код подготовки отображаемой страницы на сервере.