일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- sql
- alter
- 힙덤프
- 큐
- javascript
- dfs
- html
- 스택
- union_find
- deque
- set
- GC로그수집
- 리소스모니터링
- JPA
- scanner
- CSS
- 스프링부트
- string
- map
- priority_queue
- Calendar
- BFS
- Union-find
- spring boot
- Properties
- List
- math
- date
- Java
- NIO
- Today
- Total
매일 조금씩
11/09 - Java (1) : 자료형, 연산자, 제어문 본문
Java
- 기본 문법을 많이 되풀이해서 공부(반복!)
- 가능하면 모든 소스를 타이핑(소스 감상 금지)
* 자바의 정석(필독서)
- 동영상 강의 - 혼자 들을수 있다! (다운로드 가능)
- 프론트엔드 → 자바스크립트
- 백엔드 → 자바, 파이썬
- IoT → c, c++
Unix
- 하드웨어(비싸) / OS(비싸) 이렇게 따로 살때의 OS.
- 중대형급에서 사용.
- 공공기관 / 금융 에서씀
- c / c++ / host(IBM) cobol 을 써써 업무용 프로그램 다 만듬
- c / c++ => 모든 라이브러리를 수작업해야하는 단점!
+ Java가 나옴! (개인용 pc용이 아니라 업무용 중대형급에서 컸다)
-> 풍부한 라이브러리 (손쉽게 제작 가능)
-> 속도가 빠르고 업무용 프로그램에 손쉽게 제작 가능하고 관리가 편했다.
-> 자바 개발자는 개인개발자가 없다. 혼자 개발 못한다. (팀워크 중요)
-> 혼자하려면 스마트폰 쪽밖에 못하지만 그것도 다른쪽과 연결되어야한다.
Java
- 이식성이 높은 언어다.
- 객체 지향 언어다.
- 다양한 애플리케이션을 개발할 수 있다. -> Java SE, Java EE
- 막강한 오픈소스 라이브러리가 풍부하다.
* Java SE : 기본 라이브러리
↑ (붙이기)
* Java EE : 기업용 추가 라이브러리 (엔터프라이즈 - 기업용, 분산)
▷P7,8
* JDK : Java SE 의 구현체 - [JRE (JVM + 표준 클래스 라이브러리) + 개발에 필요한도구]
- 개발엔 JDK(javac.exe), 사용자에겐 JRE를 준다.
* JVM : 자바 가상 기계 - 자바 프로그램은 완전한 기계어가 아닌 중간 단계의 바이트 코드이기 때문에 이것을 해석하고 실행할 수 있는 가상의 운영체제가 필요하다. 그것이 자바 가상 기계 이다.
- 바이트 코드는 모든 JVM에서 동일한 실행 결과를 보장하지만, JVM은 운영체제에 종속적이다. 따라서, 운영체제에 맞게 설치되어야한다.
* API : 표준 클래스 라이브러리
@ Java API
www.oracle.com -> Java -> Java 설치 -> Java SE 8 -> Documentation -> Java SE API Documentation
*** LTS : 장기지원버전 (빨리 이거로 갈아타라!)
소스
ㅇ 메모장
ㅇ 범용 편집기 - Visual Studio Code <- 우린 이걸로 한다!
-> eclipse 없이 메모장 가지고도 짤수 있어한다. eclipse는 도움을 주는 툴이다.
ㅇ 전용 편집기(IDE)
- eclipse - 전자정부프레임워크, python(pycharm도 있다)
- intellij - 안드로이드
소스 작성 규칙
클래스명 = 파일명!!
* 식별자 규칙
* 대문자로 시작(팀간의 룰)
public class 클래스명{ // 프로그램의 시작점 public static void main(String[] args){ // args 만 바꿀수 있다. 프로그램 기술; // 프로그램의 끝 System.out.println("화면 출력"); } } |
소스 코드 작성
- 기본 형식
JDK와 JRE모두 잘 설치되어있는지 확인하고
public class Ex01{
public static void main(String[] args){
System.out.println("Hello Java");
}
}
실행되는 것을 확인 가능
주석이나 출력에 한글 넣고 싶으면
이렇게 해주면 한글도 된다.
println에서 ln은 다음줄을 의미.
+를 쓸수도 있다.
형식대로 출력하는 방법도 있다.
자료형
1. 변수
▷p39~49
기본, 정수, 실수, 논리
int, double, boolean, char
byte, short, long, float 등등
↓
용어들외우기(메모리 크기는 X)
- boolean : true, false 모두 소문자로 써야함
- char : '' 는 문자, ""는 문자열이다. 모든 문자를 유니코드로 처리한다.
ASCII - 영문, 특수 글자, 숫자는 코드값으로 처리
unicode - 다국어 ex) char c4 = '\uc790'; // 하면 '자' 가 출력됨 / \u 때문에 한글자로 인식
- String : 객체 형태로 정확히 class형태다. (string을 대문자로 시작하게 써야함)
※ 항상 문자는 '' , 문자열은 "" 써야함
- float : f가 붙어야함 2.5처럼 그냥 소숫점은 double로 취급한다. 2.5f 처럼 해줘야한다.
2. 상수
대문자로 선언, 연결은 _ 사용
선언시, final을 붙이면 상수화 된다.
형변환 - 자동형변환,
- 강제형변환 -> ()괄호를 쓴다.
연산자
1. 증감 연산자
2. 산술 연산자
정수/정수 => 정수 => 몫(소수점이하 없어짐)
3/2 는 1.5인데 1만 나온다.
1.5처럼 소수점이 다나오게 하려면 피연산자 중 최소한 하나를 실수화 시켜줘야한다.
ex) 3/(double)2
2-1. char 연산
char 타입도 정수 타입이므로 산술 연산이 가능하다.
주의할 점은 char타입이 산술 연산이 될 경우 int 타입으로 변환되므로 산출 타입은 int타입이다.
public class CharOperationExample{
public static void main(String [] args){
char c1 = 'A' + 1;
char c2 = 'A';
// char c3 = c2 + 1; // 에러발생
System.out.println("c1: " + c1);
System.out.println("c2: " + c2);
// System.out.println("c3: " + c3);
}
}
여기서 c1의 'A' + 1은 리터럴 문자 'A'에 1을 더한 것인데 문자 A는 65라는 유니코드를 가지므로 'A'+1은 66이 된다.
자바는 리터럴 간의 연산은 타입 변환없이 해당 타입으로 계산하기 때문에 문제가 없다.
그러나 c3에서 c2 에 1을 더하면 c2는 int 타입으로 변환되고 1과 연산이 되기 때문에 산출타입은 int 타입이 된다.
따라서 char타입변수 c3에 대입을 할 수가 없어 컴파일 에러가 발생한다.
(리터럴연산의 결과값 변수) + 1 => int + int
그래서 다음과 같이 되어야 한다.
public class CharOperationExample{
public static void main(String [] args){
char c1 = 'A' + 1;
char c2 = 'A';
char c3 = (char)(c2 + 1);
System.out.println("c1: " + c1);
System.out.println("c2: " + c2);
System.out.println("c3: " + c3);
}
}
3. 대입연산자
4. 삼항연산자
public class ConditionalOperationExample{
public static void main(String [] args){
int score = 85;
char grade = (score > 90)? 'A' : ((score > 80)? 'B': 'C');
System.out.println(score + "점은" + grade + "등급입니다.");
}
}
제어문
▷p108
1. if-else 문
public class IfElseIfElseExample{
public static void main(String [] args){
int score = 75;
if(score >= 90){
System.out.println("점수가 100~90입니다.");
System.out.println("등급은 A 입니다.");
} else if(score >= 80){
System.out.println("점수가 80~89입니다.");
System.out.println("등급은 B 입니다.");
} else if(score >= 70){
System.out.println("점수가 70~79입니다.");
System.out.println("등급은 C 입니다.");
} else {
System.out.println("점수가 60~69입니다.");
System.out.println("등급은 D 입니다.");
}
}
}
2. switch 문
원래 switch문의 괄호 안에 정수타입 변수나 정수값을 산출하는 연산식만 올수 있었는데
자바7부터는 String 타입의 변수도 올 수 있다.
반복문
@ 구구단
@ 문자열 출력
j <= 65+i를 하는 이유는 A부터 출력하기 위함
문자열 결합을 이용
'빅데이터 플랫폼 구축을 위한 자바 개발자 양성과정' 카테고리의 다른 글
11/11 - Java (3) : 생성자, final, 객체 참조 배열, 상속, 오버라이딩 (0) | 2020.11.11 |
---|---|
11/10 - Java (2) : 배열, 객체지향, 클래스, 메소드, this, static (0) | 2020.11.10 |
11/06 - Javascript (6) : bom, <form>, dom (0) | 2020.11.10 |
11/05 - Javascript (5) : 내장객체 > 기본객체 Number, Date, Math, Array, Map, Set (0) | 2020.11.08 |
[Tomcat] 브라우저에서 로그인이 필요하다고 뜨는 오류 (0) | 2020.11.08 |