본문 바로가기

Programming/java

Java의 리플렉션 API java.lang.Class#forName 클래스명으로부터 Class 객체를 취득한다. java.lang.Class#forName 객체를 생성한다. java.lang.Class#getConstructor 생성자 객체를 취득한다. java.lang.Class#getMethod 메소드 객체를 취득한다. java.lang.Class#getField 필드 객체를 취득한다. 더보기
JNI 네이밍 규약 Java___ (JNIEnv* pEnv, ...) 첫번째 인자는 언제나, JNIEnv타입.그다음 인자는 자바 메소드의 실제 매개변수들. 더보기
byte to long conversion package handler.file; public class ByteHandler {/** * long -> byte array * @param data * @return */ public static byte[] toByte(long data) { return new byte[] { (byte)((data >> 56) & 0xff), (byte)((data >> 48) & 0xff), (byte)((data >> 40) & 0xff), (byte)((data >> 32) & 0xff), (byte)((data >> 24) & 0xff), (byte)((data >> 16) & 0xff), (byte)((data >> 8) & 0xff), (byte)((data >> 0) & 0xff), }; } /*.. 더보기
자바로 소수점 반올림하기 음수일 경우에도 정상작동하며, 로직은 곰곰히 생각하시면, 이해가실 겁니다~아래의 roundOff method 이용 한다. 예 : RoundOff.javapackage round; public class RoundOff {public static void main(String[] args) {for(int i=2; i< 9; i++){System.out.println(roundOff(3.146592416, i));} }/** * num : 반올림할 숫자. * point : 어디까지 반올림할 것인가?. */public static String roundOff(double num, int point){return String.valueOf(Math.floor(num * Math.pow(10, point) + .. 더보기
소수점 올림 자바에서, 소수점 자르기 사용. 반올림을 하는 것이 아니라, 그냥 자르고 싶을 경우 사용한다. * 소수점 올리기. numberObj는 잘라줄 변수를 넣어준다. private String roundInSecond(Double numberObj){ return String.format("%.2f", numberObj); } 자바의 String.format을 사용하면, 깔끔하고 쉽게 코드를 사용 할 수 있기에, 공부가 필요하다. * 여기서 응용 소수점 셋째자리에서 자르고 싶다면? 다음과 같이 쓰면 되겠다. 적절히 응용해서 사용하자. 물론, String.format도 공부하는 시간을 가집시다. private String roundInSecond(Double numberObj){ return String.form.. 더보기
디렉토리 지우기 자바의 File에서 디렉토리를 지우게 될경우, 하위 디렉토리가 있다면, 지워지게 되지 않는다. 그래서, 디렉토리를 지워줄때엔 재귀호출을 이용하여, 지워주어야 한다. public boolean deleteFile(String filePath){ File file = new File(filePath); String[] subDirs = null; String path = filePath; if(file.isDirectory()){ subDirs = file.list(); int subDirsLenght = subDirs.length; for(int i=0; i 더보기
자바에서 랜덤숫자 만들기 - 0 < x < 1사이의 실수 만들기 Double d = Math.random(); -2147483648 < x < 214743647 ( Integer.MIN_VALUE < x < Integer.MAX_VALUE ) Random random = new Random(); Int x = random.nextInt(); .. nextBoolean(), nextFloat(), nextDouble 등 다양함. 0 더보기
String & StringBuilder & StringBuffer String : immutable StringBuffer & StringBuilder : mutable Immutable mutable 불변의 변하기 쉬운 더보기
Volatile 에 대한 공부. volatile에 대한 단상, 이걸 꼭 알아야 하는가? 자바 개발자로서 모를 필요는 없겠지? 그렇다면, 공부해 보는게 어떨까? Wiki에서의 Volatile… http://en.wikipedia.org/wiki/Volatile In computer science: Volatile variables, variables that can be changed by an external process Volatile memory, memory that lasts only while the power is on (and thus would be lost after a restart) 무슨 말인지 모르겠다, 네이버 사전에서의 Volatile… http://endic.naver.com/enkrEntry.nhn?entr.. 더보기
Blank Final 이란? 자바에서 변수를 생성할때, 다음과 같이 생성하지요, private String name; 만약, 변수가 바뀌는걸 원하지 않는다면, 선언부에 final을 적게 되지요, private final String name; 여기서, 용어가 하나 나오는데, Blank Final이라는 것입니다. final 변수를 선언과 동시에 초기화를 해주는 것이 아닌, 생성자에서 초기화를 해주는 것을 말합니다. 즉, private final String name = "멍보"를 하는 대신, 생성자에서 초기화 시켜주는 겁니다. 예로는 다음과 같겠지요, class BlankFinal { private final String name; public BlankFinal(String name){ this.name = name; } } 다음 .. 더보기
순수 문자만 반환하는 정규식 함수 private static final Pattern NUMBER_PATTERN = Pattern.compile("([^\\w])"); /** * 특수문자를 제거하고 순수캐릭터만 반환. * @param orgString * @return pureString */ public static String getPureNumber(String orgString){ StringBuffer destStringBuffer = new StringBuffer(); Matcher m = NUMBER_PATTERN.matcher(orgString); while(m.find()){ m.appendReplacement(destStringBuffer, ""); } m.appendTail(destStringBuffer); retur.. 더보기
순수 숫자만 표현 하는 정규식 private static final Pattern NON_CHARACTER_PATTERN = Pattern.compile("([^\\d])"); /** * 숫자이외를 제거하고 순수숫자만 표현합니다. * @param orgString * @return pureString */ public static String getPureString(String orgString){ StringBuffer destStringBuffer = new StringBuffer(); Matcher m = NON_CHARACTER_PATTERN.matcher(orgString); while(m.find()){ m.appendReplacement(destStringBuffer, ""); } m.appendTail(destStri.. 더보기
inputStream to String inputStream을 String으로 출력한다. public String isToString(InputStream is) throws IOException { if (is != null) { Writer writer = new StringWriter(); char[] buffer = new char[1024]; try { Reader reader = new BufferedReader( new InputStreamReader(is, "UTF-8")); int n; while ((n = reader.read(buffer)) != -1) { writer.write(buffer, 0, n); } } finally { is.close(); } return writer.toString(); } else { ret.. 더보기