728x90

Coding/JAVA 36

[JAVA] NoClassDefFoundError: class.$1 파일

최근에 회사에서 코드 수정 후에 배포하였는데 오류가 떴다로컬에서는 빌드가 잘 되어서 상당히 당황스러웠다현재 회사 시스템 상, 운영 오류 로그 보려면 원격 서버 들어가서 로그 창 뒤져야 했기 때문,,,근데 운영중인 시스템에 다른 로그까지 다 찍혀서 찾기도 힘들었는데 서비스 미 이용시간에 남아서 로그를 분석해본 결과 아래와 같은 로그가 떴다클래스명.$1 어쩌고 로그가 뜨길래 뭔가 했는데 검색해보니 저 파일이 누락되었다고 한다. 그래서 봤더니 생긴지도 몰랐는데 클래스명+ $1.class 파일이 있어서 찾아보았다 코드 수정할 때 Comparator를 사용했는데, 자바 컴파일러는 익명 내부 클래스(anonymous inner class) 가 등장하면클래스명$번호.class 형태로 별도의 파일을 자동 생성한다고..

Coding/JAVA 2025.11.30

Scanner와 BufferedReader 차이

📌 Scanner- 버퍼 사이즈: 1KB- 가공O => 문자열 구분 및 파싱- 예외처리 숨김- 단순입력 양이 많아지면 효율이 떨어진다 (이럴땐 BufferedReader 쓰는게 나음)  📌 BufferedReader- 버퍼 사이즈: 8KB- Buffer란? -> 임시 저장 공간 기억장치(두개의 장치 사이에서 더이터의 전송속도나 처리속도의 완화를 위한 기억장치)- 가공 X / 저장 O- 예외처리 던져야함 public static void main(String[] args) throws IOException {} - inputStreamReader에 버퍼링 기능 추가된 클래스 BufferedReader br = new BufferedReader(new InputStreamReader(System.in))..

Coding/JAVA 2024.10.27

[JAVA]StringBuilder

📋 String- String클래스는 불변이다.  - 불변인 String 클래스의 단점: 문자를 더하거나 변경할 때마다 계속해서 새로운 객체를 생성해야함- 문자를 자주 더하거나 변경해야 하는 상황에 더 많은 String객체를 만들고 GC해야함 ===> 컴퓨터의 CPU, 메모리 자원을 더 많이 사용하게 됨 => 문자열을 더 자주 변경할수록 시스템의 자원을 더 많이 소모한다. 📋 GC(Garbage Collection)- 자바 가상 머신의 힙 영역에서 동적으로 할당했던 메모리 중 필요 없게 된 메모리 객체를 모아 주기적으로 제거하는 프로세스 📋 StringBuilder- 가변- StringBuilder 객체 안에서 문자열을 추가, 삭제, 수정할 수 있음 (이 때마다 새로운 객체를 생성하지 않음)===>..

Coding/JAVA 2024.09.18

[JAVA]상속과 메서드 오버라이딩(@override)

📋 Overloading이란?- 메서드 이름은 같고 파라미터가 다른 메서드를 여러개 정의하는 것(같은 이름의 메서드를 여러개 정의) 📋 Method Overriding이란?- 부모에게서 상속 받은 기능을 자식이 재정의 하는 것 Car.javapackage extends1.overriding;public class Car { public void move(){ System.out.println("차를 이동합니다."); } //추가 - 자식들은 모두 이 기능을 물려받게 된다.(상속) public void openDoor() { System.out.println("문을 엽니다."); }} Car는 부모 클래스이다.여기서 move()라는 메서드를 정의하고 ..

Coding/JAVA 2024.09.03

[JAVA]NullPointerException

📋 NullPointerException이란?- 이름 그대로 null을 가리킬 때에 발생하는 예외이다. null은 없다는 뜻이므로 결국 주소가 없는 곳을 찾아갈 때 발생하는 예외이다.- 객체를 참조할 때는, .(dot)을 사용하여 참조값을 사용해 해당 객체를 찾아갈 수 있다. 그러나 참조값이 null이면 값이 없다는 뜻이므로, 찾아갈 수 있는 객체(인스턴스)가 없다. NullPointerException은 이처럼 null에 .을 찍었을 때에 발생한다. 📋 예제1 (지역변수가 null인 경우)public class NullMain2 { public static void main(String[] args) { Data data = null; data.value = 10; /..

Coding/JAVA 2024.08.23

[JAVA] 기본형과 참조형 - 변수 대입

✍🏻 자바는 항상 변수의 값을 복사해서 대입한다. 기본형과 참조형 모두 항상 변수에 있는 값을 복사해서 대입한다. 📋 기본형 대입int a = 10;int b = a; // a = 10➡️ 변수에 값을 대입하더라도 실제 사용하는 값이 변수에 바로 들어있기 때문에 해당 값만 복사해서 대입 📋 참조형 대입Student s1 = new Student();Student s2 = s1;➡️ 실제 사용하는 객체가 아니라 객체의 위치를 가리키는 참조값만 복사됨  📋 코드 예시package ref;public class VarChange2 { public static void main(String[] args) { Data dataA = new Data(); dataA.value ..

Coding/JAVA 2024.08.22

[JAVA]기본형과 참조형

📋 기본형(Primitive Type)- int, long, double, boolean(소문자로 시작)처럼 변수에 사용할 값을 직접 넣을 수 있는 데이터 타입- 기본형 변수에는 직접 사용할 수 있는 값이 들어있음- 실제 사용하는 값을 변수에 담을 수 있고 해당 값을 바로 사용할 수 있다.- 연산 가능 📋 참조형(Reference Type)- Student student1, int[] students와 같이 데이터에 접근하기 위한 참조(주소)를 저장하는 데이터 타입- 참조형 변수에는 참조값(위치)가 들어가 있음. 참조형 변수를 통해서 뭔가 하려면 결국 참조값을 통해 해당 위치로 이동해야함- 실제 사용하는 값을 변수에 담는 것이 아님 (실제 객체의 위치를 저장)- 참조형에는 객체와 배열이 있다  ➡️ ..

Coding/JAVA 2024.08.21

[JAVA] 영화 리뷰 프로그램

클래스를 생성하여 영화 제목과 리뷰 내용을 출력하는 미니 프로그램을 만들어보자 📋 MovieReview.javapackage class1.ex;public class MovieReview { String title; String review;} title과 review라는 멤버변수가 담긴 MovieReview클래스를 하나 생성해주자 📋 MovieReviewMain1.javapackage class1.ex;public class MovieReviewMain1 { public static void main(String[] args) { MovieReview inception = new MovieReview(); inception.title = "인셉션"; ..

Coding/JAVA 2024.08.20