String, StringBuffer, StringBuilder의 차이점
·
Java & Spring/Java
코딩테스트 문제를 풀던 중Stirng "+="연산자 사용과 StringBuilder사용의 성능차이가 발생하는걸 확인하여 그에 대해 학습구분StirngStringBufferStringBuilder가변 여부불변가변가변스레드 세이프OOX연산속도느림중간빠름※ 스레드 세이프란 (thread-safe) ?멀티 스레드 환경에서 프로그램이나 코드가 여러 스레드에 의해 동시에 실행될 때,예상치 못한 결과나 오류 없이 정확하게 실행되는 것을 스레드 세이프(thread-safe)라고 합니다.◇ String// 스트링 리터럴로 스트링 객체 생성String str1 = "Hello";String str2 = "Hello";// String 클래스의 생성자를 이용해서 스트링 객체 생성Stirng str3 = new String(..
Scanner클래스 next()메서드 개행문자 처리
·
Java & Spring/Java
객체 생성import java.util.Scanner;Scanner scanner = new Scanner(System.in);다양한 메서드scanner.next() : 공백을 기준으로 다음 단어를 읽음, 개행 문자를 구분자로 사용하여 개행문자가 버퍼에 남지않음String s = sc.next(); // "hello world"입력 "hello" 출력scanner.nextLine() : 개행 문자까지의 전체 줄을 읽음, 개행 문자를 포함하여 읽어들임String s = sc.nextLine(); // "hello world"입력 "hello world" 출력scanner.nextInt(), scanner.nextFloat() : 공백을 기준으로 다음 단어를 읽고 개행 문자를 버퍼에 남겨둠nextLine()..
6일차 - Java강의(변수, 형변환)
·
Java & Spring/Java
◇ 개발 언어(Java)Java 탄생 배경공통실행환경, 클래스 객제Java를 왜 배워야 하는가?공통실행환경이 있어 여러 기기에서 실행 가능하다.세상과 닮아있는 객체지향 언어로 이해하기쉽고 유지보수가 쉽다.안정성이 높아 프로그래밍 오류를 방지하고 보안상 안전하다.대규모 앱 개발이 가능하다.다양한 개발도구와 라이브러리를 사용할 수 있다.JVM(JRE)란?Java Virtual Machine의 약자로 "자바 가상 머신"이라는 뜻Java프로그램을 실행시킬 수 있는 가상의 기기를 만들어주는것을 의미어느장비에든 JVM을 깔아주면 Java가 놀 수 있는 놀이터가 된다고 생각하면됨바이트 코드 : 내가 작성한 코드가 운영체제가 읽을 수 있는 코드로 Java 컴파일러가 변환한 코드인터프리터 : 운영체제가 읽은 바이트 코드..
Map 기본 문법 및 사용법
·
Java & Spring/Java
선언 및 초기화Map map = new HashMap();으로 선언 및 초기화 하며 key와 value의 type을 정해주면된다. import java.util.HashMap;import java.util.Map;public class Main { public static void main(String[] args) { Map map = new HashMap(); }}갑 추가map.put(key, value); map.put("a", 1);map.put("b", 2);map.put("c", 3);값 읽기map.get(key); → 해당 key의 value 출력 int value = map.get("a"); // value는 1값 삭제map.remove(key); → 해당 ke..
배열 부분 복사 'Arrays.copyOfRange()'
·
Java & Spring/Java
Arrays.copyOfRange()는 원본배열의 일부분을 복사하는 메서드로 다음과 같이 사용한다. int[] copyarr = Arrays.copyOfRange(OriginalArray, Start index, End index);→ OriginalArray의 Start index부터 End index - 1 까지※ Start  indxe(포함), End index(미포함)import java.util.Arrays;public class CopyOfRangeExample { public static void main(String[] args) { int[] originalArray = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; // 배열의 일부분을 복사 ..
문자열 값 비교 'str.compareTo()'
·
Java & Spring/Java
문자열의 비교같다(0)다를경우 String str = "abcd";System.out.println(str.compareTo("abcd")); // 0(같은경우)System.out.println(str.compareTo("ab")); // 2(포함되었을 경우 길이차이)System.out.println(str.compareTo("a")); // 3(포함되므로 길이차이)// compareTo()는 같은 위치의 문자만 비교해준다.System.out.println(str.compareTo("c")); // -2(아스키 코드 'a'와 'c'의 차이값)System.out.println(str.compareTo("ABCD")); // 32(전혀 다른경우도 아스키 코드 차이값 ..
생활코딩 - Java(Collection framework)
·
Java & Spring/Java
□ Collection framework 구성  - set : 중복을 허용하지 않음(순서가 보장되지 않음)- list : 중복 허용(순서 보장)□ ArrayList배열은 크기를 한번 지정하면 크기를 초과할 수 없지만ArrayList는 크기를 미리 지정하지 않기 때문에 얼마든지 많은 값을 저장할 수 있다.구분배열ArrayList값의 개수.length.size출력[인덱스번호].get(인덱스번호) ※ ArrayList의 메소드 add의 입장에서는 인자로 어떤 형태의 값이 올지 알 수 없다.    그렇기 때문에 모든 데이터 타입의 조상인 Object 형식으로 데이터를 받고 있다.   따라서 ArrayList 내에서 add를 통해서 입력된 값은 Object의 데이터 타입을 가지고 있고, get을 이용해서 이를 꺼..
생활코딩 - Java(참조)
·
Java & Spring/Java
□ 복제 □ 참조 ex) 메모장으로 예를 들었을 때 '복사본'의 경우 서로 복제된 상태로 더이상 연관이 없지만 '바로가기'의 경우 원본 '메모장'을 참조한 상태이므로 상호작용이 발생함 또한 복사의 경우 용량이 2배가 되는 것 이지만 바로가기는 훨씬 작은용량을 차지하게 됨 ex2) 아래 코드로 다시한번 참조에 대해 정리해보면 1) runValue 메소드부터 확인해보면 기본변수 a에 1이라는 값이 들어있다. 그다음 _value라는 메소드를 호출 하는데 해당 메소드의 매개변수 b에 a를 넣는 상황이다(int b = a;). 그 후 변수 b의 값을 2로 바꾸더라도 a에 영향을 주지 않는다. → runValue, 1 2) A a = new A(1); : id 값이 1인 새로운 A 객체를 생성하고, a 변수가 이 ..
생활코딩 - Java(상수와 enum)
·
Java & Spring/Java
□ enum enum은 열거형(enumerated type)이라고 부른다. 열거형은 서로 연관된 상수들의 집합이라고 할 수 있다. 위의 예제에서는 Fruit가 말하자면 열거인 셈이다. - enum의 특징 코드가 단순해진다. 인스턴스 생성과 상속을 방지한다. 키워드 enum을 사용하기 때문에 구현의 의도가 열거임을 분명하게 나타낼 수 있다. □ enum 생성자 위 코드에서 APPLE("red")에서 ( )는 생성자를 호출 그 생성자를 Fruit(String color)의 매개변수 color에 들어감 this.color = color에서 color으로 들어감 this.color은 다시 전역변수 public String color으로 들어감 출처 : 생활코딩 유튜브 : https://www.youtube.co..
생활코딩 - Java(Object 클래스)
·
Java & Spring/Java
□ Object 자바에서 모든 클래스는 사실 Object를 암시적으로 상속받고 있는 것이다. 그런 점에서 Object는 모든 클래스의 상위 클래스라고 할 수 있다. 그 이유는 모든 클래스가 공통으로 포함하고 있어야 하는 기능을 제공하기 위해서다. □ to String 객체를 문자로 표현하는 메소드 클래스 Calculator에 toString을 재정의(overiding)했다. 그리고 인스턴스를 System.out.println의 인자로 전달하니까 toString을 명시적으로 호출하지 않았음에도 동일한 효과가 나고 있다. toString을 직접 호출하지 않아도 어떤 객체를 System.out.print로 호출하면 자동으로 toString이 호출되도록 약속되어 있다. □ equals equals는 객체와 객체..