Skip to content

Instantly share code, notes, and snippets.

View VijayKrishna's full-sized avatar
🍊
Working from home

Vijay Krishna Palepu VijayKrishna

🍊
Working from home
View GitHub Profile
@VijayKrishna
VijayKrishna / Goto.java
Created March 18, 2015 08:40
The embarassing existence of unconditional jumps (read goto's) in Java. It (goto) is like a zombie that refuses to just die.
public class Goto {
public static void main(String[] args) {
int count = 0;
Goto:
for(int i = 0; i < 10; i +=1) {
for(int j = 0; j < 10; j += 1) {
System.out.println("hello" + count++);
break Goto;
}
public static double entropy(List<? extends Comparable> values) {
final Map<Comparable, Long> valueOccurances = new HashMap<Comparable, Long>();
for (Comparable value : values) {
Long valueOccurance = valueOccurances.get(value);
valueOccurances.put(value, valueOccurance == null ? 1L : ++valueOccurance);
}
double combinedEntropy = 0.0d;
vioplot2 <- function (x, ..., range = 1.5, h = NULL, ylim = NULL, names = NULL,
horizontal = FALSE, col = "magenta", border = "black", lty = 1,
lwd = 1, rectCol = "black", colMed = "white", pchMed = 19,
at, add = FALSE, wex = 1, drawRect = TRUE, side="both")
{
datas <- list(x, ...)
n <- length(datas)
if (missing(at))
at <- 1:n
upper <- vector(mode = "numeric", length = n)
@VijayKrishna
VijayKrishna / ReturnAdapter.java
Last active September 8, 2023 19:53
Example code showing how the AdviceAdapter in ASM(.ow2.org) can be used/extended.
package self.vpalepu.stackoverflow;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import org.objectweb.asm.ClassReader;
import org.objectweb.asm.ClassVisitor;
import org.objectweb.asm.ClassWriter;
import org.objectweb.asm.MethodVisitor;
Using Underscore Characters in Numeric Literals
In Java SE 7 and later, any number of underscore characters (_) can appear anywhere between digits in a numerical literal. This feature enables you, for example. to separate groups of digits in numeric literals, which can improve the readability of your code.
For instance, if your code contains numbers with many digits, you can use an underscore character to separate digits in groups of three, similar to how you would use a punctuation mark like a comma, or a space, as a separator.
The following example shows other ways you can use the underscore in numeric literals:
long creditCardNumber = 1234_5678_9012_3456L;
long socialSecurityNumber = 999_99_9999L;
# This is a comment
=begin
This is a multiline comment
No-one uses them
You shouldn't either
=end
# First and foremost: Everything is an object.
import java.util.*;
import java.io.*;
public class FootTrafficAnalysis {
HashMap<Integer, HashMap<Integer, ArrayList<Integer>>> dataStore =
new HashMap<Integer, HashMap<Integer, ArrayList<Integer>>>();
public static void main(String[] args) {
new FootTrafficAnalysis().channelLogFile(new File("simple.in"));
@VijayKrishna
VijayKrishna / parseMethodArgument.java
Last active March 16, 2024 22:43
parse the Method description during java bytecode engineering using ASM; basically to find out the number of arguments being passed to the method.
public static char[] parseMethodArguments(String desc) {
String[] splitDesc = splitMethodDesc(desc);
char[] returnChars = new char[splitDesc.length];
int count = 0;
for(String type : splitDesc) {
if(type.startsWith("L") || type.startsWith("[")) {
returnChars[count] = 'L';
}
else {
if(type.length() > 1) { throw new RuntimeException(); }
import java.util.*;
public class CommonMapSetValues {
public static void main(String[] args) {
CommonMapSetValues obj = new CommonMapSetValues();
obj.addKeyValue("abc", new String[] {"ax1","au2","au3"});
obj.addKeyValue("def", new String[] {"ax1","au6"});
obj.addKeyValue("ijk", new String[] {"ax1","au2"});
System.out.println(obj.toString());
public class CloneTest implements Cloneable {
public static void main(String[] args) {
CloneTest original = new CloneTest("dummyname", new StringBuffer("Molly"), 1);
CloneTest clone = (CloneTest)original.clone();
System.out.println("orignal.name2:" + original.name2.toString());
System.out.println("clone.name2:" + clone.name2.toString());
clone.setName2("Dolly");
System.out.println("orignal.name2 (after clone update):" + original.name2.toString());
System.out.println("clone.name2: (after clone update):" + clone.name2.toString());
}