버터감자
오늘도 내 하루는
버터감자
전체 방문자
오늘
어제
  • 분류 전체보기 (139)
    • 🏃‍♀️ Do it ! (80)
      • TIL (73)
      • Project (5)
      • Certificate (2)
    • 📓 TechNote (52)
      • RPA (1)
      • Python (2)
      • JAVA (13)
      • Spring (11)
      • SQL (7)
      • Git & GitHub (6)
      • CS (0)
      • HTML & CSS & JavaScript (2)
      • Tools (9)
      • API (1)
    • 🔔 Error (7)
      • Error (7)

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

태그

  • 기본쿼리
  • 게시판
  • 포트폴리오
  • 스택
  • 만들기
  • 안드로이드
  • 변수
  • 부트스트랩
  • callback
  • 스프링
  • final필드
  • dml
  • 세션
  • 큐
  • foreach
  • 데이터베이스
  • opacity
  • SQL
  • 객체지향
  • 이것이자바다
  • 문제풀이
  • 오라클
  • 함수
  • 홈페이지
  • 이클립스
  • 버블소트
  • 코틀린
  • 배열
  • sqld
  • 톰캣

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
버터감자

오늘도 내 하루는

예외 처리 / 자바 API / Object 클래스 / class 클래스 / tomcat설치
🏃‍♀️ Do it !/TIL

예외 처리 / 자바 API / Object 클래스 / class 클래스 / tomcat설치

2022. 9. 20. 10:30
728x90

2022 / 9 / 20 화

 

  • 예외 처리
  • 자바 API
  • Object 클래스
  • Class클래스
  • tomcat설치

✔️예외 처리

try - with - resources

- 예외 발생 여부와 상관이 없음

- 사용했던 리소스 객체의 close() 메소드를 호출하여 리소스를 닫는다.

- 리소스 객체는 java.lang.AutoCloseable 인터페이스를 구현하고 있어야 한다. 

 

예외 떠 넘기기 throws

- 메소드 선언 끝에 작성을 한다. 


✔️자바 API

자바 API?

- 자바에서 기본적으로 제공하는 라이브러리로 프로그램 개발에 자주 사용되는 클래스 및 인터페이스 모음이다.


API 도큐먼트

https://docs.oracle.com/javase/8/docs/api/

 

Java Platform SE 8

 

docs.oracle.com


java.lang 패키지

- 자바 프로그램의 기본적인 클래스를 담은 패키지

- 포함된 클래스와 인터페이스는 import 없이 사용

클래스 용도
Object 자바 클래스의 최상위 클래스로 사용
System 키보드로 부터 데이터를 입력 받을때 사용
표준 출력장치로 출력하기 위해 사용
자바 가상머신을 종료시킬떄 사용
쓰레기 수집기를 실행요청할 떄 사용
Class 클래스를 메모리로 로딩할 때 사용
String 문자열을 저장하고 여러가지 정보를 얻을 떄 사용
StringBuffer, StringBuilder 문자열을 저장하고 내부 문자열을 조작할 떄 사용
Math 수학 함수를 이용할 떄 사용
Wrapper Byte, Short, Characte,
Integer, Flat, Double
Boolean
기본 타입의 데이터를 갖는 객체 만들떄 사용
문자열을 기본 타입으로 변환할 떄 사용
입력값 검사에 사용

✔️Object클래스

자바의 최상위 부모 클래스 = Object

 Object의 메소드는 모든 클래스에서 사용이 가능하다.


객체비교 equals( ) 메소드

public boolean equals(Object obj) {...}

== 연산자와 동일한 결과를 리턴한다. 

 


객체해시코드 (hashCode( ) )

객체를 식별할 하나의 정수 값을 의미한다. 

객체의 메모리 주소를 이용하여 해시코드를 리턴하기에ㅔ 객체마다 다른 값을 갖고 있다. 

 

해시코드값이 다르면 다른 객체로 판단을 하고, 값이 같다면 equals( ) 메소드로 다시 비교를 하게 된다. 

✨ equals()메소드가 true이면 동일한 객체로 보고, false면 다른 객체로 보게 된다.

 

🔔 hashmap 클래스 

더보기

HashMap클래스
HashMap클래스가 생성된 기억 장소는 [key, value] 쌍으로 설계가 되어있다.
key는 중복할 수가 없다는 성격을 가지고 있다.
데이터를 저장할 때마다 key 중복검사 기능을 가지고 있다.
중복된 키가 사용되면, 전에 정보는 소멸되고, 새로운 값이 저장된다.

사용법.
HashMap<Key, String> hashMap = new HashMap<Key, String>();
		
//데이터 삽입. 객체비교작업이 발생한다.
hashMap.put(new Key(1), "홍길동"); // key: 힙영역의 주소
hashMap.put(new Key(1), "이순신"); // key: 힙영역의 주소
		
//기억장소에 저장된 데이터의 수
System.out.println(hashMap.size());  // Object클래스의 객체비교 2. Key클래스의 재정의된 객체비교 1

객체 문자 정보(toString( ) )

객체를 문자열로 표현한 값

Object클래스의 toString() 메소드는 객체의 문자 정보를 리턴한다. 

 

일반적으로 의미 있는 문자정보가 나오도록 재정의
data클래스 String클래스
현재 시스템 날짜, 시간 정보 리턴 저장하고 있는 문자열 리턴

 


객체 복제 (clone ( ) )

원본 객체의 필드 값과 동일한 값을 갖는 새로운 객체를 생성하는 것

 

얕은 복제(thin clone) - 필드 값만 복제한다. 참조 타입 필드는 주소를 공유한다.

깊은 복제(deep clone) - 참조하고 있는 객체도 복제를 한다. 

객체복사가 되기위한 클래스는 조건이 있다.
Cloneable 인터페이스를 구현한 클래스 이어야 한다.
public class Member /*  extends Object */ implements Cloneable {

	//필드 : 기본타입과 참조타입을 구분해서 확인
	//참조타입
	public String id;
	public String name;
	public String password;
	
	//기본타입
	public int age;
	public boolean adult;
	
	public Member(String id, String name, String password, int age, boolean adult) {
		this.id = id;
		this.name = name;
		this.password = password;
		this.age = age;
		this.adult = adult;
	}
	
	// 객체복사기능을 갖는 메소드
	// 얕은복사
	public Member getMember() {
		Member cloned = null;
		
		try {
			cloned = (Member) clone(); //얕은복사. 즉 참조타입의 필드는 주소만 공유만하고. 새로운 객체생성안함.
		} catch (CloneNotSupportedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return cloned;
	}
}

✔️Class클래스

class 클래스

클래스와 인터페이스의 메타 데이터를 관리한다. 

메타데이터? 클래스의 이름, 생성자 정보, 필드 정보, 메소드 정보

 

class객체 얻기 

object 클래스가 갖고 있는 getClass( )메소드를 이용 또는 forName( ) 메소드를 사용하자


✔️Apache Tomcat 설치하기

https://gogohh13.tistory.com/57?category=1070674 

 

Apache Tomcat 설치하기

💻 Apache Tomcat 설치하기 Apache Tomcat 이 뭐야 ??! 아파치 톰캣은 아파치 소프트웨어 재단에서 개발한 서블릿 컨테이너만 있는 웹 애플리케이션 서버이다. 톰캣은 웹 서버와 연동하여 실행할 수 있

gogohh13.tistory.com

 

'🏃‍♀️ Do it ! > TIL' 카테고리의 다른 글

Date , Calendar 클래스/ Format 클래스 / java.time 패키지  (1) 2022.09.22
String / StringTokenizer / StringBuffer , Builder / 정규표현식 , Pattern / Arrays / Wrapper 클래스  (0) 2022.09.21
다중 인터페이스 / 디폴트 메서드 / 중첩 클래스 / 익명객체 / 예외 처리  (0) 2022.09.19
인터페이스 / 개념체크  (0) 2022.09.16
MySQL설치하기  (0) 2022.09.15
    '🏃‍♀️ Do it !/TIL' 카테고리의 다른 글
    • Date , Calendar 클래스/ Format 클래스 / java.time 패키지
    • String / StringTokenizer / StringBuffer , Builder / 정규표현식 , Pattern / Arrays / Wrapper 클래스
    • 다중 인터페이스 / 디폴트 메서드 / 중첩 클래스 / 익명객체 / 예외 처리
    • 인터페이스 / 개념체크
    버터감자
    버터감자
    🌱 새싹 개발자의 코딩 블로그 🌱

    티스토리툴바