자바에서 객체를 복사하는 유형으로 깊은 복사와 얕은 복사가 있습니다. 깊은 복사의 경우 객체의 실제값을 새로운 객체로 복사하는 것이고 얕은 복사는 단순히 객체의 주소 값만을 복사하는 것입니다. 이 두가지 방식은 각각의 장단점이 있습니다. 먼저 얕은 복사의 경우 여러 객체가 같은 주소를 참조하기 때문에 하나의 값을 변경해버리면 다른 대상의 값 또한 바뀌어 버리는 문제 등이 발생합니다. 하지만 깊은 복사의 경우 실제로 대상이 두개가 생기므로 이러한 문제에서는 자유로울 수 있습니다. 반대로 메모리 측면에서 본다면 한 객체로 할 수 있는 일은 하나로 끝내는 것이 좋습니다. 쓸데없이 두개 세개가 되면 그야말로 메모리 측면에서 본다면 비효율적이게 됩니다. 이렇듯 얕은 복사로 객체가 복사된다면 실제로는 하나의 주소 ..
String 클래스에는 replace()와 replaceAll() 메서드가 존재하는데 일반 문자열 리터널로 해당 메서드를 실행하면 결과에 차이가 없다. String str1 = " Java Programing "; String str2 = " Java Programing "; String result1 = str1.replace(" ",""); String result2 = str2.replaceAll(" ",""); System.out.println(result1);// JavaPrograming System.out.println(result2);// JavaPrograming 위의 실행결과에서 볼 수 있듯, 두 메서드 모두 특정 문자열이 새로운 문자열로 대체된 결과를 반환한다. 왜 같은 기능을 하는 ..
문자열에 포함된 공백 문자를 제거하는 방법에 대해 알아보겠습니다. 1. trim() String.trim() 은 문자열 앞 뒤의 공백을 제거합니다. 문자열 중간에 있는 공백은 제거하지 못합니다. String str1= " Java "; String str2= " Java"; String str3 = "Java "; String result1 = str1.trim(); String result2 = str2.trim(); String result3 = str3.trim(); System.out.println("["+result1+"]");// [Java] System.out.println("["+result2+"]");// [Java] System.out.println("["+result3+"]");// ..
char 배열을 String 문자열로 변환하기 위해 다음 3가지 방법을 사용할 수 있습니다. String 생성자 String.valueOf() String.copyValueOf() 1. String 생성자 public class CharArrToString { public static void main(String[] args) { char[] charArr = { 'H', 'e', 'l', 'l', 'o' }; // String 생성자를 이용한 변환 String str = new String(charArr); System.out.println(str); // Hello } } String str = new String(charArr); java.lang.String 클래스의 새성자는 char 배열을 파..
startsWith() - boolean stratsWith(String prefix) - startsWith() 함수는 대상 문자열이 특정 문자 또는 문자열로 시작하는지 체크하는 함수이다. - 해당 문자열로 시작되는지 여부를 확인하고 boolean 타입으로 true/false 값을 리턴한다. 예제 1) starsWith() 사용법 public class StartsWithTest{ public static void main(String[] args){ String val = "자바 프로그래밍 " val.startsWith("자바"); - true val.startsWith("자바 "); - true val.startsWith("자"); - true val.startsWith("자 "); - false ..
String, StringBuilder, StringBuffer 차이점과 장단점 java를 사용하면 종종 접하게 되는 문자열 클래스들입니다. (기술면접시 만나게되는 문제 중 하나.) String, StringBuilder, StringBuffer 모두 문자열을 저장, 관리하는 클래스입니다. 굳이 여러가지를 만들어놓은 이유는 무엇일까요. 1) String 먼저 string과 다른 클래스(StringBuilder, StringBuffer)의 기본적인 차이는 String은 immutable(불변), StringBuilder와 StringBuffer는 mutable(가변)에 있습니다. String 객체는 한번 생성되면 할당된 메모리 공간이 변하지 않습니다. + 연산자 또는 concat 메서드를 통해 기존에 생성..
자바에서 String 타입을 붙일 때 사용하는 방법은 다양하다. 기본 연산자인 +를 비롯하여 StringBuilder, concat 모두 들어보거나 써본 용어일 것이다. 근데 동작 방식에 어떤 차이가 있을까? 먼저 결과값으로만 비교해보자. public class Main { public static void main(String[] args){ String str1 = "Hello"; String str2 = "World!"; // '+' String result1 = str1 + str2; // concat() String result2 = str1.concat(str2); // StringBuilder StringBuilder result3 = new StringBuilder(); result3.ap..
종종 알고리즘을 풀다보면 아래와 같이 char 타입을 int 타입으로 변환해야하는 순간들이 있다. char 타입은 int 타입으로 강제 변환을 하게 되면 아스키 코드 값이 나오게 되기 때문에 형변환했다가 당혹스러운 순간이 있다. 이때 알아두면 좋은 방법 두가지를 소개한다. 방법1 - '0' 빼주기 char 타입 값에 '0' 아스키 코드 값을 뺐다. 전제조건은 char 타입 값은 48~57 사이 값이어야 한다는 점이다. 0의 아스키 코드 값이 48인점을 이용해서 아스키 코드값들끼리의 연산을 통해서 나온 아스키 코드 값을 int형으로 강제 형변환하는 것이다. 하지만, 구글링을 해서 더 좋은 방법이 있는지 확인해본 결과 역시나 원하는 메서드를 자바는 미리 제공하고 있었다. 방법2 - Character.getN..
Iterator iterator를 우리 말로 번역하면 '반복자'로, 객체 지향 프로그래밍에서 배열과 같은 여러 개의 데이터의 집합으로 이루어진 자료구조를 순회하는 객체를 의미한다. iterator를 우리 말로 번역하면 '반복자'입니다. 자바의 Collection에 저장되에 있는 요소들을 순회하는 인터페이스이다. Collection Collection이란 자바에서 제공하는 자료구조들의 인터페이스로 List, ArrayList, LinkedList, Set, HashSet, TreeSet, Stack, Queue 등이 이를 상속받고있다. 즉, 이러한 컬렉션 인터페이스를 상속받는 클래스들에 대해 Iterator 인터페이스 사용이 가능하다. Enumeration Iterator의 전신은 자바 초창기의 Enume..
1. 컬렉션 프레임워크 컬렉션 (collection) 여러 객체(데이터)를 모아 놓은 것을 의미 프레임웍 (framework) 표준화, 정형화된 체계적인 프로그래밍 방식 컬렉션 프레임워크(Collections Framework) 컬렉션(다수의 객체)을 다루기 위한 표준화된 프로그래밍 방식 컬렉션을 쉽고 편리하게 다룰 수 있는 다양한 클래스를 제공 java.util 패키지에 포함. 컬렉션 프레임워크의 주요 인터페이스로는 List, Set, Map이 있다. List와 Set은 공통된 부분이 많아 둘의 공통 메서드만 모아서 새로운 인터페이스인 컬렉션으로 정의한다. Map은 List, Set과 달리 키와 값을 쌍으로 관리하는 구조라서 독립된 인터페이스다. 따라서 위 상속계층도에 포함되지 못한다. 2. 컬렉션 프..
- Total
- Today
- Yesterday
- 호이스팅
- 마진과 패딩의 차이점
- 대소문자 변환
- 배열만들기1
- 중첩스코프
- nodelist
- 콜백 큐
- n 번째 원소부터
- rep;ㅁce
- 렌더링 과정
- Object.clone()
- 엑셀 파일 추출
- SQLD
- 신입개발자 면접 준비
- Java
- fsd 아키텍처
- fsd 구조
- 프로그래머스
- startsWith()
- 블록스코프
- StringBuilder
- replace와 replaceAll의 차이점
- Replace
- SQL 개발자
- useeffet
- replaceAll
- 문자열 반복하기
- 배열 만들기3
- 스코프
- 브라우저의 기본 구조
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |