참고 강의 : https://wikidocs.net/book/31
JDK 다운로드 :
http://www.oracle.com/technetwork/java/javase/downloads/index.html?ssSourceSiteId=otnjp/
JDK 다운로드 시 오픈소스인 8 버전을 받는다
자바의 소스코드 파일명은 *.java
이것을 컴파일하면 *.class 파일이 생성되며 Java VM이 class 파일의 바이너리 코드를 해석해 실행한다.
JVM은 이란 중간 단계를 거치기 때문에 속도면에선 단점이 있지만 모든 OS에서 실행가능한 장점을 가진다.
javac (Compiler) 확인
: 콘솔에서 javac 실행
참고 : 주석은 프로그램 실행과는 상관없이 코드에 설명을붙인 것을 말한다.컴파일 과정에서 주석은 무시되고 실행문만 바이트 코드로 번역된다. 따라서 주석을 많이 작성한다고 해서 전체 프로그램의 크기가 커지는 것은 아니므로 가급적이면 설명이 필요한 코드에 주석을 달아 두는 것이 좋다.
명령실행이 안되면 환경변수 추가
: 컴퓨터-속성-고급 시스템 설정-고급 탭에서 환경변수 추가
( ...); C:\Program Files\Java\jdk1.8.0_121\bin
jdk tools 환경변수 추가
시스템 변수 - 새로만들기
변수이름 : CLASSPATH
변수 값 : .;C:\Program Files\Java\jdk1.8.0_181\lib\tools.jar;
이클립스 설치 (Get Eclipse Neon)
http://www.eclipse.org/downloads/
처음 실행할 때 작업공간(work space) 설정
프로젝트 생성
File -> New -> Java Project
신규 클래스 생성
File -> New -> Class
메인 메소드 작성 (HelloWorld)
1 2 3 4 5 6 7 | package jump2java; public class HelloWorld { public static void main(String args[]) { System.out.println("Hello World"); } } | cs |
public class
Run -> Run As -> Java Application로 실행하면 아래 창에 실행결과가 뜬다.
(단축기 Ctrl + F11 이며 Window-Preferences-General-Keys에서 단축키 설정 가능)
이클립스 소스 자동 정렬기능
Ctrl + Shift + F
문자열 출력
1 2 3 4 5 6 7 8 9 | package jump2java; public class HelloWorld { public static void main(String[] args) { String name = "홍길동"; System.out.println("내 이름은 " + name + "입니다."); } } | cs |
(" " + 변수명 + " ");
사용자 정의 자료형 정의
Animal 클래스를 먼저 정의
class Animal {
}
Animal 자료형 변수 cat
Animal cat;
자바의 부울 자료형 예제
1 2 3 4 5 6 7 8 9 | package jump2java; public class HelloWorld { public static void main(String args[]){ int i=3; boolean isOdd = i % 2 == 2; System.out.println(isOdd); } } | cs |
Output : false
자바에서 문자열을 new 키워드로 객체 생성 가능 (하지만 가독성과 컴파일 최적화를 이유로 권장되지는 않음)
String a = new String("Happy Java");
String b = new String("a");
String c = new String("123");
1 2 3 4 5 6 7 8 9 10 | package jump2java; public class HelloWorld { public static void main(String args[]){ String a = "hello"; String b = new String("hello"); System.out.println(a.equals(b)); System.out.println(a==b); } } | cs |
true
false
문자열의 index를 return하는 indexOf
1 2 3 4 5 6 7 8 9 | package jump2java; public class HelloWorld { public static void main(String args[]){ String a = "Hello Java"; System.out.println(a.indexOf("Java")); } } | cs |
Output :
6
substring 메소드
1 2 3 4 5 6 7 8 9 | package jump2java; public class HelloWorld { public static void main(String[] args) { StringBuffer sb = new StringBuffer(); sb.append("Hello"); System.out.println(sb.substring(0, 4)); } } | cs |
1 2 3 4 5 6 7 8 9 10 | package jump2java; public class HelloWorld { public static void main(String[] args) { String[] weeks = {"월", "화", "수", "목", "금", "토", "일"}; for (int i=0; i<weeks.length; i++) { System.out.print(weeks[i]); } } } | cs |
Output :
월화수목금토일
제네릭스 (Generics)
제네릭스를 사용하지 않은 경우
1 2 3 4 5 6 | ArrayList aList = new ArrayList(); aList.add("hello"); aList.add("java"); String hello = (String) aList.get(0); String java = (String) aList.get(1); | cs |
다음과 같이 형 변환이 필요
1 2 | String hello = (String) aList.get(0); // Object 를 String 으로 캐스팅한다. (String) | cs |
제네릭스를 사용한 경우
1 2 3 4 5 6 | ArrayList<String> aList = new ArrayList<String>(); aList.add("hello"); aList.add("java"); String hello = aList.get(0); String java = aList.get(1); | cs |
명시적으로 type을 지정함으로써 잘못된 형 변환을 피할 수 있다.
맵(Map) 자료형
Map은 Key와 Value라는 것을 한 쌍으로 갖는 자료형이다. Associative array, Hash 라고도 불린다.
key | value |
---|---|
people | 사람 |
baseball | 야구 |
리스트나 배열처럼 순차적이 아닌 key를 통해 value를 얻는다.
제네릭스를 이용한 HashMap 생성
1 | import java.util.HashMap; | cs |
1 2 3 | HashMap<String, String> map = new HashMap<String, String>(); map.put("people", "사람"); map.put("baseball", "야구"); | cs |
key와 value가 String 형태인 HashMap 생성, 입력은 put메소드를 이용
List 자료형과 contains 메소드 활용한 예제
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | package jump2java; import java.util.ArrayList; public class HelloWorld { public static void main(String[] args) { ArrayList<String> pocket = new ArrayList<String>(); pocket.add("paper"); pocket.add("handphone"); pocket.add("money"); if (pocket.contains("money")) { System.out.println("택시를 타고 가라"); }else { System.out.println("걸어가라"); } } } | cs |
boolean 활용
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | package jump2java; import java.util.ArrayList; public class HelloWorld { public static void main(String[] args) { boolean watch = true; // false 대입하면 걸어가라 ArrayList<String> pocket = new ArrayList<String>(); pocket.add("paper"); pocket.add("handphone"); if (pocket.contains("money")) { System.out.println("택시를 타고 가라"); }else if(watch) { System.out.println("택시를 타고 가셈"); }else { System.out.println("걸어가라"); } } } | cs |
Output :
택시를 타고 가셈
for each 문
for문과 동일한 키워드이나 조건식이 다르다.
1 2 3 | for (type var: iterate) { body-of-loop } | cs |
iterate는 루프를 돌릴 객체이며, 한개씩 순차적으로 var에 대입되어 for문을 수행.
iterate부분에 들어가는 타입은 배열 및 ArrayList 등이 가능.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | package jump2java; import java.util.ArrayList; public class HelloWorld { public static void main(String[] args) { ArrayList<String> aList = new ArrayList<String>(); aList.add("abc"); aList.add("DEF"); String[] numbers = {"one", "two", "three"}; for(String number: numbers) { System.out.print(number+" "); } System.out.print("\n"); for(String hello: aList) { System.out.println(hello); } } } | cs |
Output :
one two three
abc
DEF
'Study > Java' 카테고리의 다른 글
Java Network 프로그래밍 기초 (0) | 2017.06.03 |
---|---|
NIO 기반 네트워킹 (0) | 2017.05.30 |
JAVA - NIO (0) | 2017.05.29 |
Java - OOP_인터페이스와 다형성 (0) | 2017.03.20 |
Java - OOP_클래스와 상속, 생성자, 오버로딩/오버라이딩 (0) | 2017.03.17 |