반응형

Language/Java 51

상수와 리터럴(constant & literal)

상수(Constant) 변수와 달리 한번 값을 저장하면 다른 값으로 변경할 수 없다. 상수를 선언하는 방법은 벼눗와 동일하며, 단지 변수의 타입 앞에 키워드 'final'을 붙여주기만 하면 된다. final int MAX_SPEED = 10; // 상수 MAX_SPEED를 선언 & 초기화 상수는 반드시 선언과 동시에 초기화해야 하며, 그 후 부터는 상수의 값을 변경하는 것이 허용되지 않는다. final int MAX_SPEED; // 에러. 상수는 선언과 동시에 초기화해야함 final int MAX_VALUE = 100; // OK. 선언과 동시에 초기화 했음 MAX_VALUE = 200; // 에러. 상수의 값은 변경될 수 없음 상수의 이름은 모두 대문자로 하는 것이 암묵적인 관례이며, 여러 단어로 이..

Language/Java 2021.09.06

변수의 타입

변수(variable)란? 하나의 값을 저장할 수 있는 메모리 공간(RAM) 변수의 선언 이유 값(data)을 저장할 공간을 마련하기 위해서 이다. 변수의 선언 방법 변수타입 변수이름 ; ex) int age = 3; 선언 후 꼭 ; 세미콜론을 붙여 줘야한다. 변수의 초기화 - 변수에 처음으로 값을 저장하는 것 int x = 0; // 변수 x를 선언 후, 0으로 초기화 int y = 5; // 변수 y를 선언 후, 5로 초기화 만약 두개의 변수 타입이 같으면 int x = 0, y = 5; 로 작성이 가능하다 변수에는 클래스 변수, 인스턴스 변수, 지역 변수가 있는데 지역변수는 읽기 전에 꼭! 초기화 해줘야한다. 그렇지 않으면 컴파일 할때 에러가 발생한다. 위 와 같이 직접 숫자를 작성해서 출력이 가능..

Language/Java 2021.09.06

자바란?

자바란? 프로그래밍 언어(programing language) 컴퓨터 프로그램(애플리케이션)을 만드는데 사용 실행환경(JRE) + 개발도구(JDK) + 라이브러리(API) 라고한다. 라이브러리 : 프로그램 제작 시 필요한 기능 자바의 특징 운영체제에 독립적이다. 객체지향언어이다. 비교적 배우기 쉽다. 자동 메모리 관리(Garbage Conllection) 멀티쓰레드를 지원한다. 동적 로딩 이다. 가비지컬렉터가 자동적으로 메모리를 관리해주기 때문에 프로그래머는 메모리를 따로 관리 하지 않아도 된다. 실행 시에 모든 클래스가 로딩되지 않고 필요한 시점에 클래스를 로딩하여 사용할 수 있다는 장점이 있다.

Language/Java 2021.09.06

extends vs implements

extends extends는 상속의 대표적인 형태이다. 모든 선언/정의를 부모가 하며, 자식은 오버라이딩 할 필요 없이 부모의 메소드/변수를 그대로 사용할 수 있다. 그리고 자바는 다중 상속을 지원하지않는다. class Vehicle { protected int speed = 3; public int getSpeed(){ return speed; } public void setSpeed(int speed){ this.speed = speed; } } class Car extends Vehicle{ public void printspd(){ System.out.println(speed); } } public class ExtendsSample { public static main (String[] arg..

Language/Java 2021.07.12

GC 가비지 컬렉션 이란?

GC란? JVM의 Heap 영역에서 사용하지 않는 객체를 삭제하는 프로세스를 말하고 GC(Garbage Collection)는 어떤 객체에 유효한 참조가 존재한다면 Reachable 그렇지 않으면 Unreachable 이라고한다. 자바는 실행될때 자바 자체 운영체제에서 돌아가는데 그게 바로 자바 가상머신JVM이고 이때 사용되는 객체를 자동으로 관리해 주는 기능이 가비지 컬렉션이다. 객체는 JVM Heap 영역에 저장되며 크게 세 영역으로 나눠져 있다. Heap 영역이란? Heap 영역에는 주로 긴 생명주기를 가지는 데이터들이 저장된다. (대부분의 오브젝트는 크기가 크고, 서로 다른 코드블럭에서 공유되는 경우가 많다) 애플리케이션의 모든 메모리 중 stack 에 있는 데이터를 제외한 부분이라고 보면 된다...

Language/Java 2021.07.05

프로세스와 스레드 차이점

프로세스(Process)란? 운영체제에게 할당받은 작업 단위이다. 쉽게 말해, 메모리 위에서 현재 실행되고 있는 프로그램을 말한다. 프로그램은 정적인 코드 뭉치이다. 사용자가 실행하지 않으면 영원히 가만히 있는다. 사용자가 프로그램을 사용하겠다고 운영체제에게 알리면, 운영체제는 메모리에 프로그램을 구동할 수 있을 만한 메모리를 할당하고, 메모리는 디스크에서 프로그램을 읽어온다. 실행 준비를 마친 프로그램은 메모리 위에서 실행된다. 이것이 하나의 작업 단위이다. Code/Data/Stack/Heap의 형식으로 할당해 준다. 각각 독립된 메모리 영역을 할당해 주기 때문에 프로세스는 다른 프로레스의 변수나 자료에 접근 할 수 없다. 다른 프로세스의 정보에는 접근할 수 없을까? 접근이 가능하다. 프로세스 간 정..

Language/Java 2021.06.30

Statement와 PreparedStatement 차이

Statement Statement를 사용하면 매번 쿼리를 수행할 때마다 3단계를 거치게 되고(계속적으로 단계를 거치면서 수행) import java.io.BufferedReader; import java.io.InputStreamReader; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; public class JdbcStatement { public static void main(String[] args) throws Exception { String url = "jdbc:mysql://localhost:3306/jdbc?characterEncoding=UTF-8&serverTimezone=UT..

Language/Java 2021.06.30

Eclipse spring 설치

1. 이클립스에서 Help - Eclipse Marketplace 를 클릭합니다. 2. STS 플러그인을 검색하고 최신버전의 STS를 설치하기 위해 Install을 눌러줍니다. 3.플러그인 항목들을 모두 체크한 뒤 Confirm을 눌러 다음 단계로 갑니다. 4. accept를 눌러 약관에 동의한 후 진행합니다 6.설치가 완료 되었으면 재부팅후 다시 이클립스를 실행시켜주세요. spring 프로젝트를 만들수 있을것입니다.

Language/Java 2021.06.02

Big-O 표기법

Big-O 표기법 알고리즘 성능을 수학적으로 표현하는것입니다. 알고리즘에 답은 정해져 있지만 풀이 과정에는 답이 없습니다. 예을 들어 답이 10라고 할때 10이라는 답을 만드는 과정은 여러가지가 있습니다. 1+1+1+1+1+1+1+1+1+1 , 2 x 5, 20 / 2 , 15 - 5 등 여러가지 문제 풀이로 답 10을 구할수 있습니다. 여기서 10을 구할때 어떤 방식으로 빠르게 답을 구하고 시간을 단축시키느냐입니다. 우리가 게임을 하려고 게임의 홈페이지 들어갔을때 그 홈페이지가 바로 들어가지고 빠르게 게임을 할수 있는 반면에 10초뒤에 켜지든지 30초뒤에 켜지고 게임 들어가는 시간까지 5분 넘게 걸린다고 치면 누구나 화가 날수가 있습니다. 안에 있는 알고리즘이 얼마나 간략하고 중복이 없으며 시간 복잡도..

Language/Java 2021.05.30

Scanner vs BufferedReader

이번에는 Scanner 클래스와 BufferedReader 클래스 차이을 알아보겠습니다. 둘의 공통점은 문자열을 입력 받는데 사용된다는 공통점이 있습니다. 구문 분석 하려면 Scanner 사용하고 구문을 한 줄씩 읽으려면 BufferedReader 사용한다는 이야기도 종종 들리더라고요 그럼 둘의 차이점은 무엇이냐? 1. Scanner - 정규 표현을 사용해 원시적 형태 및 라인을 구문 분석 할 수 있는 간단한 텍스 스캐너 입니다. - java.utill 패키지 내에 위치하고 있습니다. - 버퍼의 사이즈가 1024byte 입니다 - I/O Exception을 던지지 않습니다. import java.utill.Scanner; public class Main{ public static void main(Str..

Language/Java 2021.05.29
반응형