자바 파일(Java file), 클래스 파일(Class file)자바 파일은 확장자가 .java 인 파일로서 자바 언어로 소스 코드를 작성할 때 그 내용을 적는 파일을 뜻합니다. 그리고 이 자바 파일을 자바 컴파일러로 컴파일한 파일이 바로 .class 확장자를 가진 클래스 파일입니다. 우리가 흔히 이클립스와 같은 IDE 혹은 커맨드 라인에서 javac 명령어를 통해 컴파일했을 때 나오는 파일이죠. 이 클래스 파일을 가지고 자바의 클래스 로더(Class Loader)가 JVM으로 클래스 파일을 로딩합니다.Java에서 클래스의 로딩 과정은 클래스 로더(Class Loader)가 확장자가 .class 클래스 파일의 위치를 찾아 그것을 JVM위에 올려놓는 과정을 뜻합니다. 동적 로딩Java는 동적 로딩을 지..
자바
커넥션풀을 사용한다면 첫 요청시에만 직접적인 연결을 하고그 다음부터는 커넥션풀에 저장되어 있는 커넥션을 사용한다. 그렇다면 직접적인 연결을 할 때 어떤 코드가 실행되길래 시간이 오래걸리고커넥션풀을 사용하면 금방되는지 알아보자. Connection connection= DriverManager.getConnection("myurl");Connection connection= DriverManager.getConnection("myurl","myid","mypass"); @CallerSensitivepublic static Connection getConnection(String url, String user, String password) throws SQLException { java..
자바에서 가장 많이 보는 Exception을 꼽으라면 역시 NullPointerException이다. 줄여서 NPE라고 하겠다. NPE는 RunTimeException을 상속받은 Exception으로서 컴파일단계에서는 발생하지않고 실행도중에 발생한다. 기본적으로는 Null인 객체로부터 무언가를 하려고 하는 상황에서 발생한다. 여기서는 NPE의 해결방법보다는 단순히 어떤 상황에서 발생하는지만 작성하겠다. (특이한 NPE를 마주칠 때마다 추가할 것이다.) 1. null인 객체의 메소드 또는 필드 사용 String str= null; str.split("abcd"); 가장 많이 보는 형태이다. 아마 여러분들이 경험하는 NPE도 대부분 이것일 것이다. 웹 개발에서는 파라미터가 넘어올 것으로 기대했는데 안 넘어온..
롬복이란 @Getter @Setter @NoArgsConstructor @ToString @AllArgsConstructor public class Employee { private Integer employeeNumber ; private String lastName ; private String firstName ; private String extension ; private String email ; private String officeCode ; private Integer reportsTo ; private String jobTitle ; } 위와같은 Employee 클래스에서 getter, setter, toString, 생성자 등을 직접 만들지 않고 @Annotation을 추가하는 것만으..
자바는 메모리에 생성된 객체를 파일 또는 네트워크로 출력할 수가 있다. 객체는 문자가 아니기 때문에 바이트 기반 스트림으로 출력해야 한다. 객체를 출력하기 위해서는 객체의 데이터(필드값)를 일렬로 늘어선 연속적인 바이트로 변경해야 하는데, 이를 직렬화(serialization)이라고 한다. 반대로 파일에 저장되어 있거나 네트워크에서 전송된 객체를 읽을 수도 있는데, 입력 스트림으로부터 읽어들인 연속적인 바이트를 객체로 복원하는 것을 역직렬화(deserialization)이라 한다. Serializable 자바는 Serializable 인터페이스를 구현한 클래스만 직렬화 할 수 있도록 제한한다. package java.io; public interface Serializable { } io패키지에 있는 인..
목차 Refleciton과 Class 클래스 Class 객체 얻기 필드와 메소드 Class 객체로부터 원하는 객체 얻기 Method.invoke() 글 시작전에... Class는 class의 하나로서 아래와 같이 선언되어있다 public final class Class implements java.io.Serializable, GenericDeclaration, Type, AnnotatedElement { .... ... ... ... } class: 우리가 객체와클래스 배울 때 배우던 그거. Class: 자바의 여러 class 중 하나 헷갈리니까 Class는 그대로 Class로, class는 한글로 클래스 라고 하겠다 Reflection과 Class 클래스란 먼저 Reflection이란 객체를 통해 클..
※전체코드는 맨 아래 있습니다. 자바에서 map을 직접 반복하는 방법은 없고 map에서 제공해주는 set을 통해 반복해야 한다. set을 반복하는 방법은 단순 for문과 iterator를 이용한 방법, 총 2가지가 있다. map에서 제공하는 set은 2종류다. keySet과 entrySet 그러므로 map을 반복하는 방법은 keySet반복개수(2) + entrySet반복개수(2)로 총 4개의 방법이 있다. 예시로 다음과 같은 map을 가지고 하겠다. Map map=new HashMap(); map.put("key1", "value1"); map.put("key2", "value2"); map.put("key3", "value3"); 그러면 map에는 다음과 같은 형태로 값이 저장 될 것이다. key va..