프로그래밍/Java 10

[객체지향] 생성자 with Java

본 내용은 인프런의 즐거운 자바 를 보고 정리했습니다. 생성자 생성자가 있으면 기본 생성자(매개변수가 없는 생성자)는 생성 되지 않는다!! 인스턴스를 사용할 때 생성자를 사용한다. ex) Car taxi = new Car(); 즉, 우리가 특정 클래스를 new 생성자를 사용한다. 어떤 값을 가지고 인스턴스가 만들어지게 하고 싶다면 생성자를 사용한다. 클래스 작성시 생서자를 만들지 않았다면 자동으로 기본 생성자를 생성한다. 예시 코드 코드로 쉽게 이해 해보자! 생성자를 private 접근 제한자로 설정하면 해당 클래스는 인스턴스를 생성할 수 없다.! 예제 01. package org.example; public class Car { private String name; // 생성자 // return typ..

[프로그래밍] Thread with Java

해당 내용은 인프런의 즐거운 자바 를 보고 정리한 내용입니다! 병렬화 할 때 고려해야 할 것들 메모리의 속도 CPU 캐시 메모리 디시크 네트워크 컨넥션 순차적 실행이 병렬실행보다 빠른 경우도 있다. 동시 실행에 따라는 오버헤드가 없고, 단일 CPU 알고리즘은 하드웨어 작업에 더 친화적일 수 있기 때문이다. 암달의 법칙(Amdahl's Law) 병렬 컴퓨팅을 할 경우, 일부 병렬화 가능한 작업들은 사실상 계산에 참여하는 컴퓨터의 개수에 비례해서 속도가 늘어난다. 이러한 경우 암달의 법칙에 의해서 전체 수행시간의 개선 효과는 병렬화가 불가능한 작업들의 비중에 크게 영향을 받게 된다. 아무리 컴퓨터의 개수가 늘어나더라도 속도의 한계는 정해져있다. 병렬 VS 병행 병행(Concurrent)은 멀티스레드 프로그래..

[자바 문법] Map 인터페이스

💡 Java Collection Framework(JCF) 에 대해 작성 했지만 Map에 대해 깊게 작성해 보자! Map 인터페이스 종류 01. HashMap 02. TreeMap 값을 자동으로 오름차순 정렬 03. LinkedHashMap key의 순서가 있는 경우 Map 출력을 위해 Map 타입의 변수를 아래와 같이 준비해보자! import java.util.*; import java.io.*; public class Solution { public class main(String[] arg) { // Map 생성 Map map = new HashMap(); // Map의 value 안에 배열 넣기 Map mapArray = new HashMap(); // 입력 값 받기 BufferedReader b..

[자바 문법] String 클래스

01. Contains 내부적으로 indexOf 메서드를 사용해서 구현하고 있음. public boolean contains(CharSequence sequence) { return indexOf(sequence.toString()) > -1; } 예시) 프로그래머스 입문 - 문자열 안에 문자열 class Solution { public int solution(String str1, String str2) { int answer = 0; if (str1.contains(str2)) answer = 1; else answer =2; return answer; } } 02. indexOf / lastIndexOf class Solution { public int solution(String str1, Str..

[자바 문법] Java Collection Framework(JCF)

Hierarchy of Collection Framework (계층적 콜렉션 프레임워크) 인터페이스는 List / Set / Map / Queue List ArrayList, LinkedList (구현) 순서가 있고, 중복을 허용 O Set SortedSet(상속) 순서가 없고, 중복을 허용 X Queue Deque(상속) FIFO(First In First Out) Map HashTable LinkedHashMap Key의 순서 보장이 필요한 경우 HashMap Key의 순서 보장이 필요없는 경우 SortedMap(Extends) TreeMap 여러 특징 중 일단, 저장과 동시에 자동 오름차순으로 정렬이 된다. Iterator (작성필요) 참고 사이트 https://testingpool.com/coll..

[자바 문법] Character 클래스

Oracle Java SE 8 버전의 내용입니다. ※ 현재 작성 중입니다. Character Object 클래스를 상속(extends) 받고 있다. Serializable과 Comparable 인터페이스를 구현하고 있다. 원시 타입(primitivice type) char 를 감싸고(wraps)하고 있는 클래스리소 char 타입이라는 하나의 필드(single field)를 가지고 있다. 수 많은(a lagre number of) ★ static methods (정적 메서드) ★를 제공하고 있다. => 즉, Charater.toUpperCase 와 같이 사용을 주로 한다. 특징 char 타입은 original Unicode specification 을 기본으로 하고 있다. 메소드 숫자인지 아닌지 판단 Ch..

[자바 문법] 어노테이션(Annotation)

똑똑한 chat GPT와 다른 사람의 블로그 등을 읽고 이해한대로 정리한 내용입니다. 어노테이션(Annotation)? 자바 코드에 메타데이터(metadata)를 추가하기 위한 것으로, 컴파일러, 런타임 시스템, 개발 도구 등에 의해 사용됩니다. 어노테이션은 주석(comment)과 유사하지만, 주석은 컴파일되지 않으며 단순히 코드의 설명을 제공하는 역할을 하지만, 어노테이션은 컴파일되어 클래스 파일에 저장되며 실행 시에 사용된다. 메타 데이터(Meta Data)? 메타 데이터는 해당 데이터의 특성, 속성, 구조, 관계 등을 기술하는 데이터입니다. 즉, 메타 데이터는 데이터를 설명하는 데이터라고 할 수 있습니다. 예) 사진 파일의 메타 데이터에는 파일 크기, 파일 형식, 촬영 일자, 위치 정보 등이 포함됩..

숏서킷 연산(Short-Circuit Evaluation)

💡 본 내용은 코드잇의 자바 객체지향 프로그래밍을 듣고 정리한 내용입니다. 👉 And 연산(&&) boolean newBoolean = m1() && m2() && m3(); newBoolean 이 true가 되기 위해서는 m1, m2, m3 모두 true 를 리턴해야한다. 따라서, m1이 false를 return 하면 m2, m3의 결과와 상관없이 false를 리턴하게 된다. 이렇게 식의 결과값이 이미 결정된 경우 미리 멈추는 것을 "솟서킷 연산(Short-Circuit Evaluation)" 이라고 한다. 👉 Or 연산(||) boolean newBoolean = m1() || m2() || m3(); newBoolean 이 true 이기 위해서는 모두 true가 되어야한다. 하나라도 false 이면..

[자바 문법] 기본형 vs 참조형

💡 본 내용은 코드잇의 자바 객체지향 프로그래밍을 듣고 정리한 내용입니다. 자바의 변수에는 두 가지 종류가 있다. 하나는 기본형(Primitive Type)과 참조형(Reference Type) 이다. 기본형(Primitive Type) 변수가 값 자체를 보관 1bit = 2진수 1자리 / 1byte = 8bit 논리형(1byte) true, false 문자형 Char(2byte) 정수형 byte(1byte), short(2byte), int(4byte), long(8byte) 실수형 float(4byte), double(8byte) int a = 3; int b = a; System.out.println(a); // 3 출력 System.out.println(b); // 4 출력 a = 4; Syste..

Java?

💡 본 내용은 생활코딩의 Java 입문 수업을 듣고 정리한 내용입니다. 자바란? 객체 지향적(Object-oriented) 자바는 숫자(int, float, long 등)나 논리값(true, false)을 제외한 거의 모든 것이 객체로 구성되어 있다. 실제로 자바는 Object 클래스에서 모든 클래스를 파생한다. 인터프리터 언어(Interpreted) 정확하게 말하면 컴파일 언어인 동시에 인터프리터 언어이다. ★먼저 텍스트 소스를 컴파일하여 2진 파일(클래스 파일)로 만든 다음 자바 런타임이 클래스 파일을 인터프리트하면서 실행한다. 시스템에 무관한 2진 파일을 만듬으로써 자바는 컴파일 언어에 가까운 속도와 시스템 독립성을 동시에 얻을 수 있었다. 강력하다(robust) 자바는 포인터 연산을 지원하지 않는..