반응형

자바&스프링 6

[자바] java 기본 타입와 wapper(래퍼) 클래스, 박싱과 언박싱

자바에서 타입은 기본 타입과 wapper타입(클래스)로 나뉘게 됩니다. 이는 언뜻보면 비슷하지만 차이가 있으며 wrapper 클래스를 사용하므로서 더 객체지향적인 프로그래밍이 가능하다는 장점이 있습니다. wrapper 클래스란? 실제 값을 가지는 것이 아니고 그 값을 가리키는 주소 값을 가진 껍데기입니다. 기본 타입을 참조 타입으로 사용하려고 할 때 쓰이는게 wrapper 클래스입니다. 계란과 계란껍데기로 비유를 하면 계란이라는 기본 타입이 존재하고 이를 감싸는게 래퍼 클래스인 계란 껍데기입니다. 이를 통해 기본 타입을 객체로 사용할 수 있습니다. 굳이 왜 이렇게 사용할까요? 그건 밑에서 보겠습니다. wrapper 클래스의 특성 ==으로 값을 비교할 수 없습니다. 실제 값을 가지고 있는게 아닌 주소를 가..

자바&스프링 2023.04.12

[자바] java의 특징, 객체지향 언어의 특징

자바는 대표적인 객체지향언어이며 특히 한국에서 주 언어로 사용하는 비율이 굉장히 높습니다. 그래서 자바공화국이라는 말도 생겨났죠 그런 자바의 특징은 어떤 것들이 있는지 알아보겠습니다. 자바의 특징 - 객체지향 언어 - 플랫폼 독립적 - 자동 메모리 관리(가비지 컬렉터) 크게 이 3가지를 꼽을 수 있습니다. A)객체지향 언어 1. 캡슐화 : 관련된 데이터 및 메서드를 하나로 묶어 외부 접근을 제한하며, 이를 통해서 코드의 유지보수성을 높입니다. 2. 상속 : 부모 클래스의 속성을 자식 클래스가 물려받아 사용이 가능하며, 이를 통해 코드를 간결하게 할 수 있습니다. 3. 다형성 : 하나의 변수 혹은 메서드가 다양하게 동작 가능하며, 이를 통해 코드의 확장성 및 유연성을 높일 수 있습니다. 4. 추상화 : 현..

자바&스프링 2023.04.11

[자바] java에서 자주 쓰이는 문자열 함수 10가지 indexOf, substring, replace 등

언어를 가장 처음 접할 때 문자열을 처리하는 함수들은 꽤 헷갈리곤 합니다. indexOf, substring 등 자주 쓰이지만 정리를 안하면 정확히 어떤 기능을 하는건지 헷갈리기 때문에 정리를 해봤습니다. IDE로 보는게 더 깔끔한거 같아서 사진위주로 올렸고, 혹시나 쓰실 수도 있기 때문에 복사 가능하도록 코드를 따로 남깁니다. /** 자바에서 자주 쓰이는 문자열 처리 함수 10가지 */ // 1. length() 문자열의 길이 반환 String str = "Hello I am good!"; int len = str.length(); // 9 // 2. substring(시작, 끝) 문자를 지정한 길이만큼 자름(시작점, 끝점) String str2 = "Hello I am good!"; String su..

자바&스프링 2023.04.08

[자바] java 가비지 컬렉터란? 장단점

자바 면접 질문에서 자주 등장하는 가비지 컬렉터에 대해서 간략하게 알아보겠습니다. a) 가비지 컬렉터란? 가비지 컬렉터는 자바에 존재하는 자동 메모리 관리 기능입니다. C언어와 같은 언어는 메모리를 직접 할당/해제 해야하기 때문에 잘 활용하면 매우 좋겠지만 잘 모른다면 메모리 낭비가 될 수 있습니다. 자바에서 가비지 컬렉터는 자동 메모리 할당, 해제를 담당하고 있기 때문에 이를 편리하게 도와줍니다. b) 장단점 장점 - 자동 메모리 관리 - 메모리 누수 방지 자동으로 메모리를 관리해주기 때문에 자동 메모리 관리와 이로 인한 메모리 누수 방지에 장점을 가지고 있습니다. 단점 - 성능 저하 - 예측 불가능한 지연 자동으로 해준다는건 그만큼 편하지만 가비지 컬렉터를 위한 자원이 소비된다는 것이기도 합니다. 또..

자바&스프링 2023.04.07

[자바] java 람다식 작성하는 법 & 예제

회사를 다니면서 쓰지 않던 것 중에 많이 접하게 되는 것 중 하나가 람다식이다. 자바 1.8부터 람다식 사용이 가능해졌기 때문에 아직 안써봤다는게 민망하지만 더 미루다간 기회비용이 더 커질 것 같아 공부하면서 포스팅을 해봅니다 들어가며) 자바는 OOP(객체지향 언어)이지만 1.8부터 함수형 언어의 특성을 도입했다. 자바는 물론 파이썬과 자바스크립트 또한 마찬가지로 함수형 언어의 특성을 가지고 있기 때문에 알아두면 유용하게 써먹을 수 있다. 람다식이란? - 함수(메서드)를 간단한 식으로 표현하는 방법 - 람다식은 익명함수(이름이 없는 함수)이다 int max (int a, int b) { return a > b ? a : b; } //변환 후 (a, b) -> a > b ? a : b 람다식을 작성하는 방..

자바&스프링 2022.12.19

[자바] java equals, == 의 차이 간단정리(+예제)

자바에는 eqauls함수가 있고 == 이라는 연산자를 통해서 값을 비교할 수 있습니다. 어떤차이가 있는지 보겠습니다. 결론부터 말하면 ==은 주소값을, equlas()는 문자열의 실제 값을 비교합니다. 구체적으로 어떤 차이가 있는지 조금 더 자세히 알아보겠습니다. ==을 통한 비교, String의 특성 이해하기 1. String은 주소값과 알맹이값을 갖습니다. 2. new 하면 객체를 무조건 생성합니다. 그림을 보면서 해석해보겠습니다. 1. String a = "dog" 가 선언되면서 Spring Pool 영역에 dog가 있는지 찾습니다. 없으니 해당 객체를 생성합니다. a라는 변수는 해당 주소지를 가리키고 있으며 101번 주소라고 가정하겠습니다. (Spring Pool영역에서 객체를 찾거나, 생성하며 ..

자바&스프링 2022.12.17