목록프로그래밍/JAVA (4)
처음부터 차근차근
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bBuzkz/btrLvJ5Sov2/AKVOZCMLCKTUiRB44bq910/img.png)
자바에서 문자열을 합치는 방법에는 크게 4가지가 있다. 1. + 연산자 2. String class의 concat() 메서드 3. String class의 append() 메서드 4. String class의 format() 메서드 간단한 코드를 작성해 각각의 연산속도를 비교해봤다. public class Main { public static void main(String[] args) { // 변수 long start, end, time = 0; // + start = System.nanoTime(); String str = ""; for (int i = 0; i < 10000; i++) { str += "ab"; } end = System.nanoTime(); time = end - start; Sy..
variable 변수 might not have been initialized 변수가 초기화되지 않았을 수 있습니다. 메서드 안에다 변수를 선언하고 + 연산을 하려고 했을 때 나온 오류이다. 나는 자바에서 변수를 선언하면 초기값을 자동으로 넣어주는 걸로 알고 있었다. 변수 타입에 따른 기본값 자료형 기본값 byte 0 short 0 int 0 long 0L float 0.0f double 0.0d char '\n0000' boolean false 참조형 변수 ex) String, Object... null 이렇게... https://stackoverflow.com/questions/2448843/variable-might-not-have-been-initialized-error Variable might..
static = 정적인, 고정된 static은 클래스 객체 생성없이 class이름만으로 바로 가져다 사용할 수 있게하는 키워드이다. 싱글톤 패턴에서는 static을 사용하여 인스턴스를 하나만 생성해 메모리 공간을 효율적으로 사용한다. static 키워드를 사용한 변수, 메소드, 클래스를 만들 수 있다. public static int myNum = 1; // static변수 또는 정적필드 public static void run(int second) { // static메소드 또는 정적메소드 } static 메소드, 변수 예제 class Cat{ static String name = "lala"; static void cry() { // 클래스 메소드 System.out.println("야옹"); } v..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/4RV3f/btrLukeuiT5/ihAog1jun9DqsOm2Kz0a50/img.png)
글을 읽기 전 String 사전지식 String은 class이기 때문에 참조형식이다. 그래서 String 변수를 선언하면 heap 메모리에 대입한 문자열 만큼의 공간이 할당되고, String 변수는 heap영역을 가리키게 된다(할당된 heap영역의 주소값을 가지게 된다). 근데 String은 일반 참조형식과는 조금 다른점이 있다. String은 다른 참조형식과 다르게 변하지 않는다는 특징을 가지고 있다. 한번 저장된 String객체의 값은 변하지 않는다. 그래서 String str = "first": str = "second"; 이렇게 하면 str 이 가리키는 곳의 값이 first -> second로 변경되는 것이 아니라 아예 새로운 객체를 만들어 새로운 공간을 가리키게 된다. 그다음 쓸모없어진 "fir..