[혼자 공부하는 자바] 6/28 02-3 형변환
·
JAVA
한 변수값을 다른 변수에 복사해서 저장할 때, 두 변수의 타입이 다르다면? 저장이 가능할 수도, 안될수도. byte a =10; int b =a; 복사해서 저장할 때 int타입의 값으로 변환되었다. ㅇ자동 타입 변환 (=promotion) ㄴ큰 = 작은 ㄴbyte < short < int < long < float < double, 따라서 정수 타입을 실수 타입으로 저장할 때에는 무조건 자동 타입 변환 ㄴ예외: byte 타입을 char타입으로 자동 변환은 불가. byte는 음수 가능하지만 char은 음수 불가능. ㅇ강제 타입 변환 (=casting) ㄴ작은 = 큰 ㄴ예) int intValue = 10; byte byteValue = (byte) intValue; (byte)캐스팅 연산자를 사용하여 강제..
[혼자 공부하는 자바] 6/28 01-1 ~ 02-2
·
JAVA
더보기 ㅇ환경변수 ㅇJDK 설치폴더의 bin폴더 - 다양한 명령어 있음 - 대표적으로 컴파일하는 javac 명령어, 컴파일된 파일을 실행하는 java명령어가 bin 안에 있음. javac와 java 명령어는 bin 안에 있기 때문에 다른 폴더에서 실행 불가. 다른 폴더에서 실행하려면 환경 변수 Path에 bin 폴더를 등록해야 한다. --> 시스템 변수에서 Path 환경변수를 편집한다. bin을 등록하고 맨 위로 올려줘야 한다. 왜냐하면 명령 라인에서 명령어를 찾을 때 등록된 순서대로 찾기 때문이다. ㅇ.java 확장자인 자바 소스 파일을 컴파일러인 javac 명령어로 컴파일한다. 컴파일에 성공하면 확장자 .class인 '바이트 코드 파일'이 생성된다. 이는 완전한 기계어가 아님. 이 바이트 코드 파일을..
[혼자 공부하는 자바][신용권] 목차
·
JAVA
자바 시작하기 변수와 타입 연산자 조건문과 반복문 참조 타입 클래스 (객체지향 프로그래밍의 꽃) 상속 인터페이스 중첩 클래스와 중첩 인터페이스 예외 처리 기본 api클래스 스레드 컬렉션 프레임워크 입출력 스트림 01-1 프로그래밍 언어와 자바 자바 소개/ 자바 개발 도구 설치/ 환경변수 설정 01-2 이클립스 개발 환경 구축 이클립스 설치/ 워크스페이스/ 퍼스펙티브와 뷰 01-3 자바 프로그램 개발 과정 바이트 코드 파일과 자바 가상 기계/ 프로젝트 생성부터 실행까지/ 명령 라인에서 컴파일하고 실행하기/ 프로그램 소스 분석/ 주석 사용하기/ 실행문과 세미콜론(;) 02-1 변수 변수 선언/ 값 저장/ 변수 사용/ 변수 사용 범위 02-2 기본 타입 정수 타입/ 실수 타입/ 논리 타입 02-3 타입 변환 ..
[JAVA] 클래스의 구성요소 / 필드(field)
·
JAVA
필드는 클래스의 구성요소다. Car라는 객체에는 자동차의 이름, 번호를 가지고 있다. 이를 속성이라고 한다. 자바에서는 이런 속성은 필드라고 부른다. 학교에서 공부하는 학생은 이름, 학생을 속성으로 가진다. 학생이 20명 있다면 학생 객체가 20개 있음을 의미한다. 각각의 학생은 이름이 구별된다. 객체별로 속성값이 유지된다는 의미이다. Car클래스에 이름과 번호를 필드로 가지도록 만든다면..? 필드를 선언해보자. 변수선언이랑 비슷하다. 타입 그리고 필드명. 이름을 나타낼 수 있는 타입은? String 번호는 숫자니까.. 정수타입 int로 번호를 선언해보자. Car라는 클래스에 이름과 번호라는 필드를 선언한 모습이다. 그럼 이제 이 자동차를, CarExam클래스에서 이용해보도록 하자~! 지난번에 Car라는..
[JAVA] 변수타입 / 참조형 변수 String / String 클래스
·
JAVA
참고강의: https://programmers.co.kr/learn/courses/5/lessons/138 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ㅇ기본형 타입은 클래스가 아니다. ㅇ앞서 배웠던 배열이나 클래스가 참조형 타입에 속한다. 참조형 변수를 하나 선언해볼까? String str = new String("hello"); 이런식으로 String이라는 클래스를 이용해서 참조형 타입 변수 str을 선언했다. 제일 앞에, 기본형 타입이 아닌 String이라는 클래스가 적혀있다. 우변에는 new다음에 생성자라는 것이 있다. new는 클래스를 메모리에..
[자료구조] LinkedList 구현 - 데이터 추가 / addFirst[Java]
·
자료구조 + 알고리즘
(cf. linkedlist ---head, tail, size, node) addFirst를 구현해보자. 오타난걸 캡쳐했다.. 화살표가 가리키는 곳에 imput 아니고 input이다. 가장 먼저 input을 받아서 노드 객체를 생성해야 하므로 Node newNode = new Node(input); >>만들어 놓은 Node 클래스를 객체화한 것이다! "노드 객체를 생성" addFirst()가 호출 될 때마다 새로운 노드를 만든다. Node newNode = new Node(input); 이게 있으니까! ^-^ addFirst로 노드 객체를 만드는 거다. Node 클래스의 생성자인 public Node(Object input) 부분에 input값이 들어갈 거고, (자바: 객체의 생성과 동시에 인스턴스 변..
[자료구조] LinkedList 구현 - 객체생성[Java]
·
자료구조 + 알고리즘
자바에서 LinkedList를 구현하는 방법을 보자. ArrayList와 내부적인 구현방법이 다르다는 것에 집중해서 배워보자. linkedlist는 arryalist처럼 내부적으로 배열을 사용하지 않는다. 객체를 만들고, 객체와 객체를 참조(연결)하는 방식의 linkedlist 노드(버텍스/엘리먼트)... 만들 거다 각각의 노드는 링크필드(변수)를 통해 연결될 것이다. 헤드 - 링크드리스트에서 누가 첫번째 노드인가? 테일 - 누가 끝 노드인가?
피보나치 수열 코드 셀프피드백 [JAVA]
·
기타
이전 포스팅에서 피보나치 수열 코드를 다음과 같이 설계했었다. 재귀함수 표현으로 작성하면 깔끔할 것 같다고는 생각했지만, 방법을 몰라서 일단 할 수 있는 대로 설계했다. +재귀함수 표현으로는 어떻게 가능할까? 그래서 공부해봤다!! 재귀함수 표현 공부에 앞서서... 오아.. 내가 메서드 활용에 어색한 티가 난다. 메서드를 만들어보자고는 생각을 안했다. ++앞서 내가 프로그래밍한 것처럼, 이전에 계산했던 값을 저장해두었다가 나중에 재사용하는 방법이 동적 프로그래밍의 방법중 하나라고 한다. (Dynamic programming) ++또한 피보나치 수열이 재귀함수의 활용이나 동적 계획법을 연습하는데 흔히 쓰인다고 한다. 오~!! 그런데 내가 이걸 스스로 연습해볼 생각을 하다니 내가 너무 기특하다. 앞으로도 이런..
피보나치 수열 프로그램 만들어보기 | 재귀X
·
기타
이산수학 강의 듣다가 피보나치 수열 나와서 한번 만들어봤다. 자바 프로그래밍 연습할겸 해서.. 많은 거 복습했고 연습했다. int값의 범위 참고 int의 범위는 -2147483648 ~ 2147483647 (정수 0을 양수쪽으로 생각하면 대칭ㅇ) 약 -21억에서 +21억 정도를 표현할 수 있다. 이를 참고하면 나타낼 수 있는 수열은 1번째 값부터 47번째 값만 가능하다. (++범위를 벗어나는 값을 저장하려고 하면 오버플로우가 발생한다. 범위를 넘어서는 순간, 마치 수도계량기나 자동차의 주행거리계처럼 다시 처음으로 되돌아간다. 오버플로우가 발생하더라도 컴파일러는 아무 경고도 하지 않는다. 프로그래머가 스스로 오버플로우가 일어나지 않도록 조심해야 한다.) Scanner가 close()된 곳이 없다는 뜻이다...
[JAVA] 데이터 입력받기 / Scanner 메소드 / 입력 함수
·
JAVA
Scanner은 java.util에 있는 라이브러리! import java.util.Scanner; 을 불러주고 시작해야 한다. -Scanner 클래스의 선언- Scanner name = new Scanner(System.in); ㅇ인자로 System.in을 넣어준다. -Scanner 클래스의 여러 메소드- ㅇnext() : 문자열을 입력 받을때 사용 / 공백 이전의 한 단어를 받아온다. ㅇnextLine() : \n(개행문자)가 나오기 전까지 문자열을 입력 받는다. ㅇnextInt() ㅇnextDouble() ㅇnextLong() ㅇnextShort() 등 . . . 아래서 자세히 공부해보자. //Scanner 클래스를 호출해주자 import java.util.Scanner; //Scanner 객체를 ..