본문 바로가기

JAVA/[JAVA] 바구니51

[JAVA] 예외 처리 자바를 배울 때 예외를 도대체 어떻게 처리를 하는 것이 올바른 것인지 모르고 단순히 다음과 같은 코드로 처리했다. 사실 실무에서도 종종 볼 수 있는 코드이다. 1. 예외를 잡아 놓고는 아무것도 하지 않는다. try{ }catch(SQLException e){ } 2. 콘솔 출력 try{ }catch(SQLException e){ System.out.println(e); } 개발 중에는 콘솔 창에 메시지가 눈에 띄게 보이니 문제가 없지만 운영 서버에 올라가면 누가 콘솔 로그를 모니터링을 하나? 3. 빨간색 콘솔 출력 try{ }catch(SQLException e){ e.printStackTrace(); } 난 모니터링 안 해 이러한 행동은 예외를 처리한 것이 아닌 방치한 것이다. 예외를 처리할 때 모든 .. 2021. 3. 27.
Java의 기본 log : Logger 여러 종류의 다양한 로그 라이브러리들이 존재한다. Log4 j : java loggin API Logback : Log4j를 개선시키기 위해 만든 프로젝트 java.util.logging : 이번에 간단하게 사용할 로거. 그리고 흔하게 말하는 SLF4 J는 Simple Logging Facade for Java의 약자로, 자바 애플리케이션에서 로깅을 추상화하는 인터페이스입니다. 로깅은 애플리케이션의 실행 중에 발생하는 이벤트와 정보를 기록하는 작업을 말합니다. SLF4J는 로깅 시스템과의 결합을 줄이고, 로깅 시스템을 유연하게 교체할 수 있는 기능을 제공하여 개발자에게 편의성을 제공합니다. SLF4J의 핵심 아이디어는 인터페이스와 바인딩으로 이루어져 있습니다. SLF4J는 인터페이스를 제공하여 개발자가 .. 2021. 2. 26.
[JAVA] Java Virtual Machine JVM - 자바는 WORA("한번 작성해 어디에서나 실행한다")의 원칙을 기반으로 한 언어이다. 1995년 자바가 나오기 이전의 모든 컴퓨터 프로그램은 특정 운영체제에 종속되어 설계되어 있었으며 프로그램 메모리는 전부 개발자가 관리했었어야 했다. - JVM은 자바 프로그램이 다양한 운영체제와 다양한 기기에서도 실행될 수 있게 하는 Virtual Machine이다 Machine이라고 표현하지만 사실은 소프트웨어이다. 컴파일된 바이너리 코드는 플랫폼에 종속받지 않고 실행시키는 것뿐만 아니라 프로그램 메모리를 관리하고 최적화까지 해주는 소프트웨어이다. -JVM은 스택 기반 가상 머신이다. 가상 머신은 레지스터 기반과 스택 기반이 존재하는데 둘의 차이는 피연산자를 저장하고 다시 호출하는 메커니즘이 다르다. 스택.. 2020. 7. 8.
[JAVA] RuntimeException 실행 예외 NullpointerException 객체 참조가 없는 상태입니다. 즉 null값을 갖는 참조 변수로 객체의 접근 연산자인. 를 사용했을 때 발생합니다. String str = null; str.toString(); ArrayIndexOutOfBoundsException 배열에서 인덱스 범위를 초과하여 사용할 경우 발생 public static void main(String[] args){ String[] arr = {'a','b'}; System.out.println(arr[4]); } NumberFormatException 문자열을 숫자로 변환하는 경우가 많습니다. 그중 숫자로 변환될 수 없는 문자가 포함되어있을 때 발생됩니다. String str = "100as"; int value= I.. 2020. 6. 6.
[JAVA] Exception 오류의 종류는 두 가지가 존재합니다. Error는 하드웨어의 오동작 또는 고장, 정전으로 인한 오류입니다. 에러가 발생되면 프로그램은 종료가 되며 정상 실행상태로 돌아갈 수 없습니다. Exception은 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 발생되는 오류입니다. 예외가 발생되면 프로그램이 종료되지만 예외를 코드로 처리하게되면 정상 실행상태로 돌아갈 수 있습니다. 예외의 종류 일반 예외 : 예외 처리 코드가 존재하지 않다면 컴파일이 되지않는 예외입니다. 그나마 안전한 예외입니다. 개발자가 실행했을경우 컴파일 자체가 되지 않아서 예외를 처리할 수 있습니다. 실행 예외 : 예외 처리 코드를 생략하더라도 컴파일이 가능합니다. 따라서 애플리케이션을 배포했을 경우 심각한 문제가 발생할 수 있습니다. .. 2020. 6. 6.
[JAVA] Wrapper Class 포장 객체 무엇인가 감싼다는 이야기입니다. 기본 타입( byte , char, short, int , long , float, double, boolean) 값을 포장하는 객체 기본 타입의 값은 외부에서 변경할 수 없다. 기본 타입 Wrapper Class byte Byte char Charcter short Short int Integer long Long float Float double Double boolean Boolean 외우기는 쉽습니다. int, char를 제외만 나머지의 Wrapper Class는 앞글자만 대문자입니다. Boxing과 Unboxing Boxing 기본 타입의 값을 포장 객체로 만드는 과정 Unboxing 포장 객체에서 기본 타입의 값을 얻어내는 과정 Boxing Code .. 2020. 5. 25.
[JAVA] StringBuffer , StringBuilder String의 단점을 보완한 클래스입니다. String은 내부의 문자열을 수정할 수 없습니다. +로 문자열을 더할 때마다 새로운 객체가 생성되어 메모리를 사용합니다. StringBuffer, StringBuilder 버퍼는 데이터를 임시로 저장하는 메모리에 문자열을 저장합니다. 버퍼 내부에서 추가,수정,삭제 작업을 할 수 있습니다. 두 개의 클래스의 차이점은 스레드의 환경입니다. 멀티 스레드 환경에서는 StringBuffer을 사용하며 단일 스레드환경에서는 StringBuilder를 사용합니다. StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder(10); //10자가 기본적으로 저장될 버퍼싸이즈로 생성됨 StringBu.. 2020. 5. 21.
[JAVA] Enumeration Type Enum 한정된 값만을 갖는 데이터 타입입니다. 요일 {월, 화, 수, 목, 금, 토, 일} , 계절{봄, 여름, 가을, 겨울}이러한 한정된 값을 이야기합니다. 한정된 값은 열거 상수 Enumeration Constant로 정의. 열거타입 선언 열거 타입 소스 파일 생성한 뒤 열거 타입 이름의 첫 문자는 대문자로 작성하는 것이 관례입니다. Week.java Login.java 중간에 다른단어를 사용해야 한다면 CamelCase를 따릅니다. 작성 방법. 파일 이름과 동일한 이름으로 선언 public enum 동일한이름{ 열거 상수 열거 상수..... } 열거 상수 이름은 관례적으로 모두 대문자로 작성합니다. 다른 단어가 결합된 이름은 관례적으로 _언더 바로 연결합니다. ex) public enum Logi.. 2020. 5. 13.
[JAVA] String Class(2) 문자열 찾기 indexOf() 매개 값으로 주어진 문자열이 시작되는 인덱스를 리턴합니다. 주어진 문자열이 포함되어 있지 않으면 -1을 리턴합니다. 특정 문자열이 포함되어 있는지 여부에 따라 실행 코드를 달리할 때 자주 사용됩니다. if(문자열.indexOf("찾는 문자열") != -1) { //찾는 문자열이 포함되어 있을때 실행되는 코드 }else //찾는 문자열이 포함되어 있지 않은 경우 실행되는 코드 문자열 길이 length() 0부터 문자열의 길이를 반환합니다. 띄어쓰기 포함 합니다. 문자열 대치 replace() 첫 번째 매개 값인 문자열을 찾아 두번째 매개값인 문자열로 대치한 새로운 문자열을 리턴합니다. replace(바꿀 값. 바뀐 값); 만약 replace메서드로 String 객체의 값이 바.. 2020. 5. 12.
[JAVA] String Class java.lang 패키지안에 존재하는 클래스입니다. 생성자 byte []을 문자열로 변환하는 생성자. 파일의 내용을 읽거나, 네트워크를 통해 받은 데이터는 보통 byte [] 배열로 받아 문자열로 변환합니다. package constructor; public class ByteStringProgram { public static void main(String[] args) { byte[] bytes= {72,101,108,101,11,32,34,97,68}; // 키코드로 인식됩니다. String str1 = new String(bytes); //전체 바이트항목을 문자로변환을해 문자열로 반환해줍니다. System.out.println(str1); } } package constructor; import .. 2020. 5. 8.