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 / 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(); }
@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"));
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());
}
@VijayKrishna
VijayKrishna / ArrayTest.bytecode
Last active December 18, 2015 19:39
Finding out the semantic differences between different parts of the code can be too easy. Check out the README.md for this Gist to find out the back story behind this Gist and "How are array object created when using a bracketed list" :)
public class ArrayTest extends java.lang.Object{
public ArrayTest();
Code:
0: aload_0
1: invokespecial #1; //Method java/lang/Object."<init>":()V
4: return
public static void main1();
Code:
0: iconst_3
@VijayKrishna
VijayKrishna / index.html
Last active December 15, 2015 02:38
Keys n Bars - 2
<!DOCTYPE html>
<meta charset="utf-8">
<style>
.chart rect {
stroke: white;
fill: steelblue;
}
.paddle rect {