본문 바로가기

JAVA3

Try with resources, 자원 자동 해제하기 Try with resources java 7에서 추가된 'try with resources'는 try(...) try안에서 선언된 객체들을 try가 끝나면 자동으로 자원해제 해주는 기능입니다. 아래는 텍스트파일에 문자열을 쓰는 간단한 코드입니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 public static void main(String[] args) throws IOException { BufferedOutputStream bos = null; try { bos = new BufferedOutputStream(new FileOutputStream("E:/Test2/TryWithResTest.txt")); String str = "Try With Resources Testttttt"; .. 2022. 7. 1.
JAVA IP Address Split(".") IP Address를 "."으로 구분하여 각 자리의 octet을 구하려고 합니다. 아래와 같이 Java의 split함수를 사용하여 쉽게 구할 수 있을 줄 알았는데 결과는 나오지 않았습니다. String ip = "127.0.0.1"; String[] octets = ip.split("."); for(String octet : octets){ System.out.println(octet); } 왜 안 나올까 생각해 봤는데 애초에 split이 원하는 대로 되질 않았고 split 함수를 확인해 본 결과 안에 그냥 사용하던 문자열이 정규표현식이었습니다. 정규표현식에서 "."는 임의의 문자 하나를 의미하기 때문에 분할이 되지 않았던 것이었습니다. 이를 정규표현식에서 문자 그대로 사용하기 위한 방법인 \\를 앞에 .. 2021. 5. 11.
[Java 문제] 127 + 1 = ? 문제 : byte b = 127; b += 1; System.out.println(b); byte 타입인 b를 127로 초기화하고 1을 더해주면 몇이 출력 될까? 128? byte 타입 범위가 -128 ~ 127까지니까 에러? 결과는? -128이다 왜 -128이 나왔을까? byte 타입은 8bit이며 맨 앞의 부호비트와 정수의 크기를 나타내는 나머지 7bit로 이루어져있다. 따라서 -128(1000 0000) ~ 127(0111 1111)까지의 숫자를 표현할 수 있다. 위의 바이너리 형식으로 보면 127은 '0111 1111'이 되고 여기에 +1 을 해주면 '1000 0000'이 된다. 이 '1000 0000'는 10진수로 -128이기 때문에 위 코드의 결과가 -128이 나오게 된다. ※ 이와같은 특징 .. 2020. 12. 29.