자바(Java) 기본 정보 정리
* IDE
- Eclipse, IntelliJ IDEA, NetBeans
//===========
* 한글 깨짐 해결방법
- *.java 파일을 UTF-8 로 저장하고 컴파일 옵션 조정
> javac.exe -encoding UTF-8 Main.java
> java.exe Main
//===========
* 'IntelliJ IDEA' IDE 설정
- 문서 UTF-8로 저장
- File -> Project Setting -> Editor
-> File Encodings
- IDE Endoding : UTF-8
- Project Encoding : System Default <-- 중요(UTF-8 아님)
- Default encoding for propertied : UTF-8
- 프로젝트 속성 -> Build -> Compiler -> Javva Compiler
- Additional command line parameters : -encoding UTF-8
- idea.exe.vmoptions 파일 수정 - (사실 변화 없음)
C:\Program Files (x86)\JetBrains\IntelliJ IDEA 14.1\bin\idea.exe.vmoptions 열어서 다음행 추가
-Dfile.encoding=UTF-8
//===========
* 'IntelliJ IDEA' 에서 실행시 윈도우 창에서 한글 출력 에러(깨짐 현상)
- 해결방법 : 프로젝 옵션중 Project Encoding 을 System Default로 바꿔야 함
//참고
- 컴파일에 javac.exe를 사용하지 않는다
- java.exe 로 명령행에서 실행하면 한글 제대로 출력됨
- GUI Designer나 jFormDesigner에서 만들어진 *.form 파일을 활용하면 한글 정상
- AWT 사용시, *.java 파일에 쓴 한글 깨짐
- Run 단계의 java.exe 옵션 변경
- java.exe 실행 옵션에 -Dfile.encoding=UTF-8 있으니 글자깨짐
- 옵션을 뺄려면 프로젝 옵션중 Project Encoding 을 System Default로 바꿔야 함
- 여러창 열기(Allow multi instance)
File -> Setting -> Appearance & Behavior -> System Settings
-> Project Setting : Open project in new window
//==============
* JAR (Java 실행파일) 파일 만들기
JAR.exe cfe Main.jar Main Main.class 필요한 클래스들...
* IntelliJ IDEA 에서 JAR 생성
- 설정 : Project Setting -> Artifacts -> 설정추가
- 생성 : Build -> Build Artifacts
* EXE 파일 만들기
launch4j 이용
http://launch4j.sourceforge.net/
//===========
* 주석 : C++과 동일
- 한줄 : //
- 범위 : /* */
//=================
* 제어, 조건, 반복
http://www.tutorialspoint.com/java/java_loop_control.htm
https://wikidocs.net/211
do{
System.out.print("value of x : " + x );
x++;
if( x > 10) break;
}while( x < 20 );
for(int x = 10; x < 20; x = x+1) {
System.out.print("value of x : " + x );
}
int [] numbers = {10, 20, 30, 40, 50};
for(int x : numbers ){
if( x == 30 ) {
continue;
}
System.out.print( x );
}
String [] names ={"James", "Larry", "Tom", "Lacy"};
for( String name : names ) {
System.out.print( name );
}
//=================
* 클래스, 메소드(=함수)
public class Main {
public static void main(String[] args) {
System.out.println("헬로우 World ");
Test1 t1 = new Test1();
t1.sum1(1,2);
}
}
class Test1 {
int i;
//생성자
public Test1(){
i= 2;
System.out.println("생성자 ");
}
//소멸자, 사용 권장안함!! 실행된다는 보장이 없음
public void finalize() {
System.out.println("소멸자 ");
}
//메소드(=함수)
public int sum1(int a, int b) {
System.out.println("sum ");
return a+b;
}
}
//==================
* 파일 입출력
http://chs02.tistory.com/14
void FileOp() throws IOException {
//파일 쓰기
System.out.println("파일 쓰기");
FileWriter fw = new FileWriter("C:\\Test.txt");
BufferedWriter bw = new BufferedWriter(fw);
for(int i=0; i< 10; i++){
bw.write( (i+1)+"줄\r\n" );
bw.flush();
}
bw.close();
fw.close();
//================
//파일 읽기
System.out.println("파일 읽기");
FileReader fr = new FileReader("C:\\Test.txt");
BufferedReader br = new BufferedReader(fr);
while(true) {
String line = br.readLine();
if (line==null) break;
System.out.println( line );
}
br.close();
fr.close();
}
//=================
< GUI >
* AWT(Abstract Window Toolkit) :
* 스윙(Swing) - AWT 보다 나은 그래픽 제공
* 표준 위젯 툴킷(SWT, Standard Widget Toolkit)
- 이클립스에서 사용하고 있는 자바기반의 위젯 툴킷(Widget Toolkit)
- JNI(Java Native Interface) 사용
예제 소스
//==================
< 자바 관련 용어 정리 >
* 자바 버전 출시 역사
http://en.wikipedia.org/wiki/Java_version_history
JDK 1.0 (1996)
JDK 1.1 (1997) - JDBC, RMI, JIT
J2SE 1.2 (1998) - Swing, IDL, Collections
J2SE 1.3 (2000) - RMI, JNDI, JavaSound
J2SE 1.4 (2002) - Java Web Start
J2SE 5.0 (2004)
Java SE 6 (2006)
2008/9 - 안드로이드 운영체제 1.0 발표
2009/4 - 썬을 오라클이 인수합병, Oracle에게 넘어감
Java SE 7 (2011)
Java SE 8 (2014) - Lambda
Java SE 9 (2017) - 6개월 단위로 버전업 선언
Java SE 10 (2018)
Java SE 11 (2018) - LTS
Java SE 12 (2019)
Java SE 13 (2019)
Java SE 14 (2020)
Java SE 15 (2020)
Java SE 16 (2021)
Java SE 17 (2021) - LTS
https://en.wikipedia.org/wiki/Java_version_history
* PaaS(Platform as a service)
- 개발 요소들을 웹에서 빌려쓰는 모델
Google App Engine(GAE) :
Microsoft Azure :
Amazon Web Services (AWS) :
* Groovy(그루비)
- 자바에 파이썬, 루비 등의 특징을 더한 언어
* Hibernate
- 자바 기반의 ORM (Object Relationship Mapper)
- 자바 객체를 RDBMS의 하나의 ROW로 맵핑
* JBoss
- 자바기반 미들웨어, 어플리케이션 서버
* Drools : 오픈 소스 Rule Engine
* Rule Engine:
- 소프트웨어의 일부분이며, 최소한의 지식(Knowledge)만으로도, 결론을 추론(inferencing)해낼 수 있는 도구
- 문제점 분석, 장애 발생 의심 상황 탐지, 매우 복잡한 문제 해결
* JavaBeans (자바빈즈)
- 자바로 작성된 재사용가능한 컴포넌트
- 자바빈 규약을 따르는 클래스
- MVC 구조에서 모델(Model)에 해당, 데이터를 표현
* 서블릿( Servlet )
- 웹서비스를 위한 인터페이스, javax.servlet.Servlet 인터페이스의 구현체
- 클라이언트의 요구를 받아 그에 대한 처리를 한 후, 결과를 되돌려주는 서버 모듈
* 서블릿 컨테이너
- servlet을 실행하고 관리하는 역할
- 네크워크 통신, 서블릿의 생명주기 관리, 스레드 기반의 병렬처리를 대행
- HTTP 요청을 해석하여 적정한 서블릿의 service 메서드를 호출
* 미들웨어
- 클라이언트와 서버 간의 통신을 담당하는 시스템 소프트웨어
- 컴퓨터와 컴퓨터의 연결을 담당하는 시스템 소프트웨어
- TP 모니터(TP Monitor: Transaction Processing Monitor)
- 데이터베이스 미들웨어 : ex) ODBC 드라이버
- WAS(Web Application Server) 미들웨어 : JBoss
* 어플리케이션 서버, WAS(Web Application Server)
- HTTP 세션 처리를 위한 웹서버,
- TP모니터(Transaction Processing Monitor, Teleprocessing monitor)
- 기업 업무까지 자바, EJB 컴포넌트 기반으로 구현 가능하게 해주는 미들웨어
- 제우스, JBoss
* JavaEE Persistence
- 다양한 데이터 소스에 대한 범용적인 접근
- ex) JDBC, ODBC
* OSGi
* Thymeleaf
- web application에서 view를 쉽게 작성할수 있도록 해주는 View Template Engine
- XML / XHTML / HTML5 template engine
'Code > Mobile' 카테고리의 다른 글
Genymotion 사용법 (4) | 2015.06.01 |
---|---|
[자바] JNI(Java Native Interface) 사용법 (0) | 2015.04.20 |
Java GUI (AWT, Swing) 프로그래밍 (0) | 2015.04.03 |
안드로이드 프로그래밍 시작하기 (0) | 2015.03.20 |
각 플랫폼별 개발자 등록비용, 앱 판매 수수료 (1) | 2014.10.02 |