본문 바로가기

분류 전체보기155

Python 문자열 처리 파이썬 자료구조 강의 중 문자열 강의를 듣고 정리한 내용 문자열 입력 받아서 타입과 값 출력 name = input('Enter: ') print(type(name)) print(name) 문자열 탐색 fruit = 'banana' index = 0 while index < len(fruit): letter = fruit[index] print(index, letter) index = index + 1 print("\n") for letter in fruit: print(letter) 문자열 슬라이싱 myString = "hello-python" print(myString[0:5]) 문자열 합치기 firstString = 'Hello' secondString = 'Python' print(firstStr.. 2019. 4. 7.
Effective Java 아이템 9. try-finally보다는 try-with-resources를 사용하라 Effective Java 3판을 학습하며 요약한 내용입니다. 자세한 내용은 책을 참고해주시기 바랍니다. 자바 라이브러리에는 close 메서드를 호출해서 직접 닫아줘야 하는 자원이 많다. InputStream, OutputStream, java.sql.Connection 등이 있다. 자원을 닫는 것을 잊어버리면 예상치 못한 문제로 이어질 수 있다. 아이템 8에서 살펴봤지만 finalizer, cleaner는 안전망 역할을 할뿐이지 즉시 해제 된다는 것을 보장 받지 못한다. 1. try-finally 자바 7 이전에는 try-finally을 통해 자원을 해제하는 로직을 작성했다. finally 블록은 반드시 호출되기 때문에 해당 블록에 자원을 해제하는 작업을 작성했다. 다음 코드는 try-finally를 .. 2019. 4. 6.
Effective Java 아이템 8. finalizer와 cleaner 사용을 피하라 Effective Java 3판을 학습하며 요약한 내용입니다. 자세한 내용은 책을 참고해주시기 바랍니다. 자바 객체 소멸자, finalizer와 cleaner 자바에서는 두 가지 객체 소멸자를 제공한다. 바로 finalizer와 cleaner가 있다. finalizer는 예측할 수 없으며, 상황에 따라 위험하므로 일반적으로 불필요하다. 자바 9부터는 finalizer를 deprecated API로 지정하고 대안으로 cleaner를 소개한다. cleaner는 별도의 스레드에서 동작해서 finalizer보다 덜 위험하다고 생각할 수 있다. 하지만, cleaner도 여전히 예측할 수 없으며, 느리고, 일반적으로 불필요하다. 1. finalizer 다음 이미지는 오라클 자바 9 API 문서에서 finalize .. 2019. 4. 6.
Effective Java 아이템 7. 다 쓴 객체 참조를 해제하라 Effective Java 3판을 학습하며 요약한 내용입니다. 자세한 내용은 책을 참고해주시기 바랍니다. C, C++ 언어는 명시적으로 메모리를 할당해서 사용하고 자원을 다 사용하고 나면 개발자가 명시적으로 해제를 한다. 가비지 컬렉터를 갖춘 자바와 같은 언어를 사용하면, 가비지 컬렉터가 다 쓴 객체를 알아서 회수한다. 그래서 메모리 문제를 개발자가 전혀 신경쓰지 않아도 된다고 오해할 수 있다. 가비지 컬렉션 (Garbage Collection) 시스템에서 더 이상 사용하지 않는 동적 할당된 메모리 블록 혹은 개체를 찾아서 자동적으로 다시 사용 가능한 자원으로 회수하는 것을 말한다. 가비지 컬렉션을 수행하는 부분을 가비지 컬렉터(Garbage Collector)라고 한다. Java에서는 개발자가 프로그램.. 2019. 4. 6.
백준 알고리즘 1152번 단어의 개수 1152번 단어의 개수 문제는 문자열 처리 알고리즘 문제이다. 1152번: 단어의 개수 첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열의 앞과 뒤에는 공백이 있을 수도 있다. www.acmicpc.net 단어 구분이 띄어쓰기만 이루어져 있으므로 문자열을 공백으로 분리한 뒤, 반복문을 통해 단어의 개수를 세면 결과값을 도출할 수 있다. 한 단어가 여러 번 등장하더라도 등장한 횟수만큼 모두 세는 것이기 때문에 별다른 조건문이 필요 없다. import java.util.Scanner; /** * 단어의 개수 문제 * 알고리즘 분류 : 문자열 처리 * * @.. 2019. 4. 6.
티베로 JDBC 연결 테스트 예제 이 글은 티베로(Tibero) 데이터베이스를 JDBC 클라이언트를 이용하여 연결 테스트하는 예제이다. 아래 코드를 실행하기 전에 데이터베이스 접속 정보를 변경해야 한다. 소스 코드 import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; /** * Tibero DBMS Connection Example * * @author jayden-lee */ public class TiberoConnection { private String ip = "You.. 2019. 4. 5.