목록분류 전체보기 (99)
되자!백엔드개발자

줄 띄어쓰기는 "\n"과 같은건 다들 기초를 배우면 알겠지만 실제로 Enter키가 입력될 때는 \n (Line feed)뿐만 아니라 \r (Carrage Return)도 입력된다. Line Feed(LF) : 1줄 띄기 (\n) -> 아스키코드값으로 0A Carrage Return(CR) : 문서 첫번째 위치로 이동(\r) ->아스키코드값으로 0D 이를 확인해 볼 수 있는 예제는 다음과 같다. import java.io.IOException; public class WhileKeyControlEx { public static void main(String[] args) throws IOException { boolean run = true; int speed = 0; int keyCode = 0; // ..
주요 패키지 java.lang 자동 import되서 따로 선언할 필요가 없다. System을 비롯하여 문자열, 수학 함수, 입출력 등과 같이 프로그래밍에 꼭 필요한 기본 클래스와 인터페이스를 제공한다. java.util 날씨, 시간, 벡터, 해시맵 등 다양한 utillity 클래스와 인터페이스를 제공한다. Scanner클래스도 여기 포함되어 있다. 주요 클래스 java.lang.Object 모든 클래스에 강제로 상속되는 최상위 클래스이다. Object클래스의 주요 메소드 (💛는 자주 쓰는 것) 메소드 설명 💛String toString() 현 객체에 대한 문자열 표현을 리턴 💛boolean equals(Object obj) obj가 가리키는 객체와 현재 객체를 비교하여 같으면 true리턴 💛 int ha..
방법 1. Math클래스의 Random함수 사용 double Math.random() 0.0 ~ 1.0 사이의 값을 return 한다. double 의 난수를 얻는데 사용한다. seed값이 현재 시간으로 고정이다. public class RandomEx { public static void main(String[] args) { // 1. Math 클래스 이용 double basic = Math.random(); // 0.0 ~ 1.0 사이의 난수 return int units = (int)(Math.random() * 10 % 10);// 0 ~ 10 사이의 값으로 변경 } } 방법 2. Random클래스 사용 return되는 숫자의 범위를 설정할 수 있다. boolean, int, long, floa..
charAt() Scanner에는 char형을 받는 함수는 존재하지 않는다. next()로 착각하기 쉬운데 이건 string을 받는 함수여서 사용하면 컴파일 에러가 난다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); char a = sc.next().charAt(0);// charAt(0)을 뒤에 추가 System.out.println(a); } } charAt(0) 이 함수는 next로 받은 String 중 맨 0번째 자리의 것을 리턴하는 함수이다. 한 글자만 입력할 것이라 숫자 '0'을 적었지만 다른 자리를 얻고 싶다면 그 자..

double 에 오차가 있는 이유 컴퓨터는 모든 숫자를 2진수로 관리한다. 실수형인 Double 또한 2진수로 저장이 되고 구조는 다음과 같다. 각 부분마다 어떤게 들어가는지는 예시로 확인하면 된다. ex) 271(10진수) -> 10111001(2진수) -> 1.0111001 * E7 로 바꾸어 저장 => sign = 0 / exponent = 7(111) / mantissa = 0111001 / 소수점 앞은 무조건 1이기 때문에 저장하지 않는다. double 과 foat모두 mantissa자리에 한계가 있기 때문에 숫자가 클 경우(즉, 소수점 자리가 긴 경우) 데이터유실이 생길 수 있다.또한 때때로 10진수로 된 실수값을 2진수로 변환할 때 무리수로 나오는 문제가 생기게된다. ex) 0.6 실수를 다..

1편은 여기 https://hyun-jng.tistory.com/77 JAVA(자바) - 다형성(업캐스팅/다운캐스팅/instanceof) 다형성(polymorphism) 조상클래스 타입의 참조변수로 자손 클래스의 인스턴스를 참조할 수 있도록 하는 것이다. class TV{ boolean power; int channel; //...// } class CationTv extends TV { String text; void.. hyun-jng.tistory.com 메소드 오버라이딩(method overriding) 슈퍼 클래스에 선언된 메소드와 같은 이름, 같은 리턴 타입, 같은 매개 변수 리스트를 갖는 메소드를 서브 클래스에서 재작성 하는 것을 말한다. 쉽게 말하면 슈퍼 클래스의 메소드를 무시하고 덮어쓰는..

polymorphism(다형성) class promotion + method override 를 이용 자동 형변환과 override 모두 충족될 때, 부모 메서드를 실행하는 것이 아니라, override된 자식 메서드를 실행 목적 : 코드 재사용 & 수정 최소화 사용 방법 부모자식클래스 만들고, method override를 시킴 실제 코딩은 부모로 promotion시켜 override된 method 위주로 코딩 casting(캐스팅) 조상클래스 타입의 참조변수로 자손 클래스의 인스턴스를 참조할 수 있도록 하는 것이다. class TV{ boolean power; int channel; //...// } class CationTv extends TV { String text; void caption() ..

상속 예시 코드 class Person { int age; public String name; } class Student extends Person {//Person의 필드를 상속 int class;// 추가로 특성 확장(Extends) 해서 사용 Student(){ this.name = "홍길동"; this.age = 20; } } 상속이란? 객체 지향 언어에서 상속은 부모 클래스에 만들어진 필드와 메소드를 자식 클래스가 물려받는 것이다. 내가 자식 클래스에 같은 코드를 만들지 않아도 만든 것과 같은 효과를 볼 수 있고 거기서 더 확장(extends)할 수 있다. 단, 상속은 클래스 간의 상속이지 객체 사이의 상속이 아니라는 점을 주의해야한다. 그렇기에 어떤 객체는 물려받고 어떤 객체는 물려받지 않는..

환경변수를 설정하는 이유 프로그램을 실행하기 위해서는 파일이 있는 디렉토리로 이동을 해야 파일을 실행할 수 있다. cmd창에 상대 경로든, 절대 경로든 찾아서 입력해줘야하는데 외우기 힘들 뿐더러, 일일히 찾는 것은 매우 불편한 일이다. 그래서 어느 경로에서나 파일을 실행시키기 위해 필요한 것이 환경변수 설정이다. 변수 값에 경로를 미리 세팅해서 어디서든 가져다 쓸 수 있게 만든 것이다. 원리를 알기 위해서는 운영체제(OS)가 명령을 받았을 때 동작하는 순서를 살펴봐야한다. 먼저 현재 디렉토리에서 해당 명령어가 있는지 확인한다. (없으면 2번) Path라는 환경 변수가 갖고 있는 모든 경로에 대해서 입력된 명령어가 있는지 탐색한다. 명령어를 발견하면 실행하고 없다면 에러 메세지를 출력한다. 지금 내 경우는..
static은 메모리와 연관이 깊기 때문에 먼저 읽고 오는걸 추천한다. https://hyun-jng.tistory.com/72?category=1020266 JAVA(자바) - 메모리 정리 static공부하다가 책에 설명이 부실한 것 같아 검색하다보니 메모리와 크게 연관이 있어보여 메모리 먼저 글을 써본다. 도움이 된 블로그는 아래와 같다 https://tape22.tistory.com/28 https://m.blog.naver.com/ hyun-jng.tistory.com static멤버 생성 방법 class Book { static int makeYear;// static변수 String title, author; ... } static멤버(클래스 멤버) vs non-static멤버(인스턴스 멤버)..