본문 바로가기

Programming/java

[java] J2EE J2EE J2EE의 이해Java TM목적 : To Ensure "Write Once, Run Anywhere"플랫폼 : J2SE, J2EE, J2MEJ2EE란?엔터프라이즈 환경에서 자바를 이용한 어플리케이션 개발을 위한 표준데이타베이스 처리(JDBC, JTS, JTA)비동기 메시지 처리(JMS)분산 트랜잭션 컴포넌트(EJB)분산 객체(RMI)웹 어플리케이션(Servlet, JSP)J2EE의 모든 스펙들은 벤터들에 의해서 구현되며 개발자들은 표준 API를 이용하여 개발한다.J2EE - JDBCJava DataBase Connectivity표준화된 데이타베이스 접근 방법(API)을 제공한다.J2EE - JNDIJava Naming And Directory InterfaceNaming and Directory.. 더보기
[java] 스레드(Thread) Thread Thread 개념process : 현재 실행중인 프로그램thread : 사전적 의미 -> 실 프로세스 내의 세부적 실행단위 곰플레이어 -> 프로세스영상 스레드음향 스레드 -> 멀티 스레딩 되어 프로그램이 동작자막 스레드 네이트온 채팅 -> 프로세스친구에게 글 전송 스레드친구로부터 글 입력 스레드 Thread 생성 방법 2가지1) extends ThreadHelloThread t = new HelloThread();t.start();2) implements RunnableHello h = new Hello();Thread t = new Thread(h);t.start(); Thread 구동방식start() ---> 스레드 스케줄러 ---> run()개발자는 스레드에 start() 명령을 내리고.. 더보기
[java] 예외처리(Exception) Exception Exception이 발생하면 프로그램은 비정상 종료된다. Exception 처리란, 프로그램 실행시 Exception이 발생되더라도 대처방안 마련하여 프로그램을 정상 수행시키는 데 있다. 컴파일 타임 에러 - 문법적인 에러 런타임 에러 - Error 와 Exception Error : 프로그램적으로 처리할 수 없는 심각한 오류Exception : 프로그램으로 해결할 수 있는 오류(예외) 왜 예외처리를 해야하나?jvm 이 프로그램을 해석(실행) 하다가 Exception 상황을 만나면 Exception 객체를 생성해서 메세지를 보여주고 비정상 종료된다. Exception 처리한다는 것은 Exception 상황이 나더라도 적절한 대처방안을 마련해 수행시키고 프로그램을 정상 수행시키는 데 있다.. 더보기
[java] Generic Generic ArrayList list=new ArrayList(); 미리 타입을 명시함으로 캐스팅 절차를 생략할 수 있고 타입의 안정성을 보장할 수 있다. ex) list.get(0).getName(); --> type PersonVO 명시되어 바로 접근 가능 더보기
[java] 상속(Inheritance) 상속(Inheritance) 객체 지향 주요 개념(Encapsulation,Polymorphism, Inheritance) 중 하나 상속을 하는 이유1. 재사용성 증대 : 개발의 생산성 즉 부모로부터 변수와 메서드를 상속받아 재사용 2. 계층구조형성 : 다형성(Polymorphism) 적용 환경 특징is a relationship사람은 동물이다. 엔지니어는 직원이다.참고) has a relationship : 사람이 자동차를 소유하다 Java는 단일 상속이다. (다중상속의 장점은 인터페이스로 처리한다.)Java keyword : extends class Person extends Animal{} 동물 객체를 사람이 상속 받는다. 부모 클래스를 super or parent class 로 표현자식 클래스를 .. 더보기
[java] 오버로딩과 오버라이딩 오버로딩과 오버라이딩 오버로딩(Overloading)오버라이딩(Overriding) 기존에 없는 매서드를 정의 하는 것 동일한 이름으로 다양한 데이터를 받아 들이기 위한 프로그래밍 기법 -> 유저 편의성 증대 매개변수의 갯수, 타입, 순서가 달라야 한다.(접근 제어자, 리턴 타입은 관계 없음) 상속받은 매서드를 자신에 맞게 재정의 하는 것 오버라이딩은 상속과 관련이 있다. 상속받은부모 매서드를 자신에 맞게 재정의 한다. 부모 메서드명과 동일해야 한다, 리턴타입, 매개변수 모두 동일해야 한다. 접근제어자는 하위에서 더좁아지면 안된다. -> 부모 메서드로 표준화 오버로딩public void eat(){}public String eat(int i){}public void eat(String s){}public.. 더보기
[java] JavaSE 환경설정 JavaSE 환경설정 Javajava 는 networking을 위해 고안된 프로그래밍 언어 Java 특징 1) 플랫폼 독립적 : 어떤 운영체제(플랫폼) 에서든 동일한 실행 write once, run anywhere jvm(번역or 통역) HelloWorld.class --실행--> 실행결과 javac java jvm이 주체 JavaSE 란?1. Java SE (Java Standard Edition)자바 표준 에디션은 가.. 더보기
[java] serialVersionUID를 선언하는 이유 serialVersionUID를 선언하는 이유 아직 객체 직렬화, 역직렬화에 대해 정확히 알지는 못 하지만 serialVersionUID가 도대체 왜 선언되어 져야하지? 라는 궁금증을 가졌던 적이 있었다.100% 이해는 되지 않지만 좋은 정보이기에 가져왔다. 사용자 정의 Exception Class를 구현하는 도중 Class내에 "private static final long serialVersionUID"를 정의 하지 않을 경우 warning이 발생하여 궁금증을 해결하고자 정보를 수집하였습니다. 결론부터 말하자면, 모든 Class는 UID를 가지고 있는데 Class의 내용이 변경되면 UID값 역시 같이 바뀌어 버립니다. 직렬화하여 통신하고 UID값으로 통신한게 정상인지 확인하는데 그 값이 바뀌게 되면 .. 더보기
[java] static 키워드 static 키워드 자바를 한번쯤 공부해본사람이라면 static키워드를 모르지는 않을 것입니다.하지만, 바르게 알고 있는 사람들은 그리 많지 않습니다. 자바경력자를 면접볼 때 static키워드에 대해서 질문하곤 합니다. 면접관 : static키워드에 대해서 설명해보세요.응시자 : static키워드를 쓰면, 객체를 생성하지 않고도 변수나 함수를 사용할 수 있습니다. 면접관 : 왜 static키워드를 쓰나요?응시자 : 객체를 생성하지 않아도 되니까 편리하고 속도도 빠릅니다. 면접관 : 그렇다면 모든 변수와 함수에 static을 붙이는 것이 좋겠네요?응시자 : 가능한한 static을 붙이는 것이 좋다고 생각합니다. 면접관 : 어떤 경우에 static을 붙일 수 있고, 어떤 경우에 static을 붙일 수 없습니.. 더보기
[java] MD5 암호화 MD5 암호화 import java.security.MessageDigest;import java.security.NoSuchAlgorithmException; public class Encrypt { public static String encrypt(String str) throws NoSuchAlgorithmException { String encData = ""; try { MessageDigest md = MessageDigest.getInstance("MD5"); byte[] bytes = str.getBytes(); md.update(bytes); byte[] digest = md.digest(); for(int i=0; i 더보기
[Java] 입력받은 정수를 역순으로 출력 입력받은 정수를 역순으로 출력 public class Sample{public static void main(String[] args) {int num = 32; do{System.out.println(num % 10); // num을 10으로 나눈 나머지 출력num = num / 10; // num을 10으로 나눈 몫을 num에 저장} while (num > 0);}} 더보기
[Java] Bubble Sort Algorithm Bubble Sort Algorithm public class BubbleSort { public static void main(String[] args) {int num[] = {9, 1, 7, 2, 8, 5}; bubbleSort(num); for(int i = 0; i num[j]){ // 앞 뒤 값 비교int temp = num[i]; // 큰 수를 변수에 저장num[i] = num[j].. 더보기