이 글은 유튜브 '자바의 정석 - 기초편'을 보고 정리한 글입니다. 📂content 1. hashCode() - 객체의 해시코드(hash code)를 반환하는 메서드 - Object클래스의 hashCode()는 객체의 주소를 int로 변환해서 반환 public class Object { ... public native int hashCode(); native는 native method라는 것이다. 이 말은 os가 가지고 있는 메서드라는 것. 주로 c언어로 작성되어 있다. 그래서 이것을 사용하면 실제로는 c언어로 작성되었지만 마치 java로 작성된 메소드처럼 사용할 수 있다. 해시코드는 객체의 지문이다. - equals()를 오버라이딩하면, hashCode()도 오버라이딩해야 한다. why? 이 둘은 객체..
전체 글
기록 겸 공부 블로그입니다. 문제를 해결해 나아가는 과정을 기록하고 있어요. 잘못된 부분이 있으면 자유롭게 댓글 달아 주세요👍이 글은 유튜브 '자바의 정석 - 기초편'을 보고 정리한 글입니다. 📂content 1. 사용자 정의 예외 만들기 - 우리가 직접 예외 클래스를 정의할 수 있다. - 조상은 Exception과 RuntimeException중에서 선택 class MyException extends Exception { MyException(String msg) { // 문자열을 매개변수로 받는 생성자 super(msg); //조상인 Exception클래스의 생성자를 호출한다. } } class MyException extends Exception { //에러 코드 값을 저장하기 위한 필드를 추가 했다. private final int ERR_CODE; //생성자를 통해 초기화 한다. MyException(String ms..
이 글은 유튜브 '자바의 정석 - 기초편'을 보고 정리한 글입니다. 📂content 1. 예외 발생시키기 1. 연산자 new를 이용해서 발생시키려는 예외 클래스의 객체를 만든 다음 Exception e = new Exception("고의로 발생시켰음"); 2. 키워드 throw를 이용해서 예외를 발생시킨다. throw e; ⍟실습 더보기 Ex8_6 class Ex8_6 { public static void main(String args[]) { try { Exception e = new Exception("고의로 발생시켰음."); throw e; // 예외를 발생시킴 // throw new Exception("고의로 발생시켰음."); } catch (Exception e){ System.out.print..
프로젝트를 정리하다가 갑자기 특정 repository에서 `button`이라는 코드가 들어간 파일을 찾고자 했다. 물론 프로젝트를 클론받아서 찾는 방법도 있지만, 클론받아서 고칠게 있는 것이 아니라 단순히 궁금해서 찾아본 거라서 클론까지 갈 필요가 없다고 생각했다. 그래서 구글링하다가 깃허브에서 검색하는 구문에 대해서 알게되었다. 해결해야할 상황 깃허브에서 repository에서 button이라는 단어가 들어간 파일을 다 찾고 싶음! 해결방법 1. 찾아야되는 repository에 들어가서 빨간상자에 있는 검색창을 이용한다. 2. 검색창에 아래와 같은 형식을 이용해서 검색한다. `repo:/ ` 예를 들어 내 아이디가 `Id`이고, 탐색할 repository는 `ABCDE`, 찾아야할 단어는 `button..
이 글은 유튜브 '자바의 정석 - 기초편'을 보고 정리한 글입니다. 📂content 1. 프로그램 오류 - 컴파일 에러 (compile-time error) : 컴파일 할 때 발생하는 에러 - 런타임 에러 (runtime error) : 실행 할 때 발생하는 에러 => 실행이 되다가 실행 중 문제 발생 에러 (error) 프로그램 코드에 의해서 수습될 수 없는 심각한 오류 예) Out of Memory Error 예외 (exception) 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류 에러는 어쩔 수 없지만, 예외는 처리하자! - 논리적 에러 (logical error) : 작성 의도와 다르게 동작 => 잘 동작은 하는데 개발자가 원하는대로 동작x 자바 컴파일러가 하는 일 1. 구문 체크 2...
❓문제 https://www.acmicpc.net/problem/20291 20291번: 파일 정리 친구로부터 노트북을 중고로 산 스브러스는 노트북을 켜자마자 경악할 수밖에 없었다. 바탕화면에 온갖 파일들이 정리도 안 된 채 가득했기 때문이다. 그리고 화면의 구석에서 친구의 메시지를 www.acmicpc.net 파일정리라는 알고리즘을 푸는데 split(".")을 사용하여 문제를 풀려고 했다. Strint tmp = sbrus.txt; String[] tmp = str.split("."); >> 예상결과 [sbrus, txt] >> 실제 결과 [] 그런데 위와 같은 결과가 나왔다. 왜 이런 결과가 나오는 것일까? 그것은 정규식 표현식에서 .는 임의의 문자열을 의미하기 때문이다. 그래서 예상결과를 원한다면 ..
⏰문제 https://www.acmicpc.net/problem/2578 2578번: 빙고 첫째 줄부터 다섯째 줄까지 빙고판에 쓰여진 수가 가장 위 가로줄부터 차례대로 한 줄에 다섯 개씩 빈 칸을 사이에 두고 주어진다. 여섯째 줄부터 열째 줄까지 사회자가 부르는 수가 차례대로 www.acmicpc.net 빙고 게임은 다음과 같은 방식으로 이루어진다. 먼저 아래와 같이 25개의 칸으로 이루어진 빙고판에 1부터 25까지 자연수를 한 칸에 하나씩 쓴다 다음은 사회자가 부르는 수를 차례로 지워나간다. 예를 들어 5, 10, 7이 불렸다면 이 세 수를 지운 뒤 빙고판의 모습은 다음과 같다. 차례로 수를 지워가다가 같은 가로줄, 세로줄 또는 대각선 위에 있는 5개의 모든 수가 지워지는 경우 그 줄에 선을 긋는다. ..
⏰문제 https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때문에 그룹 단어이지만, aabbbccb는 b가 떨어져서 나타나기 때문에 그룹 단어가 아니다. 단어 N개를 입력으로 받아 그룹 단어의 개수를 ..
⏰문제 아래 과 같이 여러개의 정사각형칸들로 이루어진 정사각형 모양의 종이가 주어져 있고, 각 정사각형들은 하얀색으로 칠해져 있거나 파란색으로 칠해져 있다. 주어진 종이를 일정한 규칙에 따라 잘라서 다양한 크기를 가진 정사각형 모양의 하얀색 또는 파란색 색종이를 만들려고 한다. 전체 종이의 크기가 N×N(N=2k, k는 1 이상 7 이하의 자연수) 이라면 종이를 자르는 규칙은 다음과 같다. 전체 종이가 모두 같은 색으로 칠해져 있지 않으면 가로와 세로로 중간 부분을 잘라서 의 I, II, III, IV와 같이 똑같은 크기의 네 개의 N/2 × N/2색종이로 나눈다. 나누어진 종이 I, II, III, IV 각각에 대해서도 앞에서와 마찬가지로 모두 같은 색으로 칠해져 있지 않으면 같은 방법으로 똑같은 크기..
⏰문제 https://www.acmicpc.net/problem/1654 1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 www.acmicpc.net 문제 집에서 시간을 보내던 오영식은 박성원의 부름을 받고 급히 달려왔다. 박성원이 캠프 때 쓸 N개의 랜선을 만들어야 하는데 너무 바빠서 영식이에게 도움을 청했다. 이미 오영식은 자체적으로 K개의 랜선을 가지고 있다. 그러나 K개의 랜선은 길이가 제각각이다. 박성원은 랜선을 모두 N개의 같은 길이의 랜선으로 만들고 싶었기 때문에 K개의 랜선을 잘라서 만들어야 한..