Java

· Java
String Java에서 String 은 불변하다. 필드에 String을 새로 주면 String을 바꾸는것이 아니라 참조하는 메모리 값을 바꾸는것이다. 즉, 문자는 new 객체로 새로 생긴다. StringTokenizer String 을 Token화 시키는것. 사용법 //1. 띄어쓰기 기준으로 문자열을 분리 StringTokenizer st = new StringTokenizer(문자열); //2. 구분자를 기준으로 문자열을 분리 StringTokenizer st = new StringTokenizer(문자열, 구분자); /* 3. 구분자를 기준으로 문자열을 분리할 때 구분자도 토큰으로 넣는다. (true) * 구분자를 분리된 문자열 토큰에 포함 시키지 않는다. (false) * (디폴트 : false)..
· Java
1. java.lang.Object class 상속 관계에 있어 모든 클래스의 최상위 class이다. 2개의 주요한 method 제공 equals() 비교 : 메모리 위치가 같은 것인지, 의미 상 같은 것인지 비교가 다르다. == : 메모리 값 비교 equals 를 오버라이딩하지 않으면 메모리 주소 값을 비교한다. @Override public boolean equals(Object obj) { //인자로 들어온 객체 - Object ( 모든 객체가 들어올 수 있다.) // 인자로 들어온 인스턴스가 equals method를 가지고 있는 인스턴스의 내용과 같으면 같은 객체로 판별하는 로직 // 두 인스턴스의 데이터 타입이 같아야 하기 때문에 맞춰주어야 한다. Student target = (Student..
· Java
13. final keyword field 앞에 final이 올 경우 : 해당 필드가 값을 변경할 수 없다 . → 상수로 사용 method 앞에 final 이 올 경우 : overriding 못함. Class 앞에 final이 올 경우 : 해당 클래스를 아예 상속 할 수 없다. 14. abstract class ( 추상 클래스 ) 메서드의 선언만 있고, 정의가 없다. 선언만 되어있는 메서드 - 추상 메서드 클래스 내에 추상 메서드가 단 1개라도 존재한다면, abstract class로 잡아야 한다. 아직 완성되지 않은 클래스 → 인스턴스를 직접적으로 파생시킬수 없다. ⇒ 하위 클래스에서 상속 받아 @Override 을 해서 완성을 한다. 💡 왜 abstract class를 사용하는가? class간의 결합..
· Java
Exception 1. Exception 프로그램 실행 시 발생하는 다양한 형태의 오류. 서버 → 오류가 난다고 서버가 꺼지면 안된다. 만약 오류가 나고 코드로 처리하지 않으면 비정상 종료가 일어남. Exception Handling 을 하게 되면 프로그램을 비정상 종료시키지 않고, 지속적으로 실행시킬 수 있다. Java ⇒ 다양한 클래스의 Exception들로 제공된다. 최상위 Exception → 상속 → 상속… package exception; public class ExceptionTest { public static void main(String[] args) { System.out.println("일부러 예외상황을 발생시켜 보자."); // int result = 10 / 0; // excep..
· Java
4. JVM의 메모리 구조 JVM은 메모리를 용도에 따라 5개의 부분으로 나누어 관리함. Register 프로그램의 실행 포인터에 대한 정보를 저장하고 관리. 프로그램에서 건드릴 수 없는 영역. Runtime Constant Pool 상수 값이 들어가는 pool Method area Class 자체에 대한 정보가 들어가 있는 공간. ex) Method에 대한 정보가 들어가 있음 Class안에 정의된 Method에 대한 실행 코드도 들어가 있다. (Class가 처음 사용되는 시점. 딱 1번 실행되는 순간 메모리에 올라감) Heap area Instance가 생성되는 메모리 공간. instance variable의 공간이 생성됨 Method를 호출할 수 있는 실행 Pointer도 있다. Call stack ..
· Java
진도표 5일차와 연결됩니다 우리는 라는 개념을 배웠습니다. 에 대한 감각을 익히기 위해서는 어떤 코드가 좋은 코드이고, 어떤 코드가 좋지 않은 코드인지 이론적인 배경을 학습하는 것도 중요할 뿐 아니라, 다양한 코드를 읽어 보며 어떤 부분이 읽기 쉬웠는지, 어떤 부분이 읽기 어려웠는지, 읽기 어려운 부분은 어떻게 고치면 좋을지 경험해보는 과정이 필요합니다. 이번 과제는 제시된 코드를 읽어보며, 코드를 더 좋은 코드로 고쳐나가는 과정입니다. 구글에 “클린 코드” 혹은 “클린 코드 정리”를 키워드로 검색해보면, 이론적인 배경을 충분히 찾아보실 수 있습니다. 🙂 그러한 내용들을 보며 제시된 코드를 더 좋은 코드로 바꿔보세요! (코드를 바꿀 때 왜 바뀐 코드가 더 좋은 코드인지 다른 사람에게 설명하신다고 생각해보..
· Java
1.1 람다식이란? 메서드를 하나의 식으로 표현한 것이다. 함수를 간략하면서도, 명확한 식으로 표현할 수 있게 해준다. 함수형 언어의 특징을 가지고 있다. int[] arr = new int[5]; Arrays.setAll(arr,(i)->(int)(Math.random()*5)+1); 다음의 문장에서 (i)->(int) (Math.random()\*5)+1); 이 람다식이다. 메서드로 하는 일을 표현하자면 int method(){ return (int)(Math.random()*5)+1; } 이다. 모든 메서드는 클래스에 포함되어야 하기 때문에 클래스도 필요하고, 객체도 생성해야 메서드를 호출할 수 있지만, 람다의 등장으로 그럴 필요가 없어졌다. 람다는 메서드의 매개변수로 전달되는것도 가능하다. 1.2..
jmboy
'Java' 카테고리의 글 목록