본문 바로가기

언어17

[JAVA] JAVA 8 interface의 변경사항 자바 8 버전이 나온 지 오래됐지만 8 버전에서 생긴 interface의 변경사항에 대해 학습한 내용을 정리합니다. default method 인터페이스의 메소드는 선언만 가능하고 구현은 불가능했지만 default 키워드를 추가하면 인터페이스 내부에서도 구현된 메소드를 선언할 수 있습니다. public interface Calculator { public int sum(int x, int y); public int min(int x, int y); // default method public default int fac(int x, int y) { return x * y; } } default method는 상속하는 클래스에서 재정의가 가능하지만 하지 않아도 사용할 수 있으며 override가 강제되지 .. 2022. 6. 10.
[JAVA] 캡슐화 객체 지향언어의 특징인 캡슐화를 고려한 로직을 작성하면 기능수정이 발생할때 사이드이펙트를 최소화 하며 로직수정의 유연함을 보유할 수 있다. 이는 다양한 이점을 가진다. 한 번에 캡슐화잘된 코드를 작성하기란 불가능 하겠지만 요소들을 잘 기억하여 다시 살펴볼때 수정할수 있도록 공부하자! 개인적인 학습의 정리글입니다. 먼저 캡슐화의 특성을 보면 1. 데이터 + 관련 기능을 하나의 클래스에 담기 - 관련있는 데이터와 기능을 하나의 클래스에 필드, 메서드로 작성한다. 2. 객체가 기능을 어떻게 구현했는지 외부로부터 감추기 - 기능을 객체의 메소드안에 작성하여 메소드 호출로서 기능을 사용할 수 있도록 한다. 3. 정보은닉 - 위의 특성과 비슷하며 객체에 대한 구체적인 정보를 노출시키지 않도록 한다. 다음은 캡슐화를.. 2022. 5. 26.
[JAVA] String, StringBuffer, StringBuilder의 차이점 해당 주제에 대해선 이미 많은 분들이 정리한 좋은 글이 있지만 성능과 연관이 있고 문자열을 다루는 일은 번번하여 기록을 남깁니다. 자바에서 문자열을 다루는 클래스는 String, StringBuffer, StringBuilder라는 3개의 클래스가 있다. 위의 3가지 클래스는 문자열을 저장하고 관리하는 기능을 제공하며 각각 조금의 차이가 존재합니다. 문자열의 연산이 많지 않다면 무관하나 연산이 많아지면 클래스의 종류에 따라 성능이슈가 발생할 수 있고, 쓰레드환경의 변화에도 이슈가 발생할 수 있습니다. 이렇기에 클래스의 특성을 이해하고 상황에 따라 알맞은 클래스를 사용해야 합니다. String과 StringBuffer, StringBuilder의 차이점 String과 StringBuffer, StringB.. 2022. 4. 19.
[JAVA] 예외(Exception) 처리에 관한 고찰 예외처리는 시스템안정성 및 오류현상 파악에 상당한 영향을 주는 아주 중요한 작업이라 생각합니다. 시스템관리자에게 잘 처리된 예외상황은 시스템관리의 용이함을 증대시키기 때문입니다. 개인적으로 한번 꼭 정리하고 넘어가고 싶은 내용이라 정리하게 되었습니다. 자바에는 크게 세종류의 예외가 존재한다. Error Checked Exception RuntimeException OR UnCheckedException 첫번째 Error을 제외하고 RuntimeException을 확장하지 않는 Exception은 모두 Checked Exception이다. 1.Error Error란 컴퓨터 하드웨어의 오동작 혹은 JVM 실행에 문제가 생겼을 경우 발생 Error와 Exception의 차이는 애플리케이션 안에서 발생한건지, .. 2022. 1. 22.