프로그래밍 언어/JAVA 22

JAVA) 자바 2차원 리스트 만드는 방법. 2차원 배열, 이중 리스트 만들기

ArrayList의 이중 리스트 생성 방법// 선언List> TwoList = new ArrayList();// 선언과 동시에 초기화List> TwoList = Arrays.asList( Arrays.asList("사과", "수박", "망고", "복숭아", "멜론"), Arrays.asList("책상", "의자", "시계", "선풍기", "펜", "텀블러", "포스트잇", "블로그"), Arrays.asList("빨강", "주황", "노랑", "연두", "초록", "하늘", "파랑", "남색", "보라", "흰색") );     자바 기본 배열의 이중배열 생성하는 방법// 변수 이름만 선언String[][] twoList;// 저장공간 할당String[][] twoList = n..

JAVA) List<Map<String, Object>> 반복문 돌리기

자바에서 List 형태는 일반 반복문으로 돌릴 수 없다. List tempListMap = new ArrayList(); The type of the expression must be an array type but it resolved to List 위와 같은 오류를 만나게 된다. 해결방법 향상된 for문을 사용한다! for(Map map : tempListMap) { System.out.println("리스트 내용: " + map); System.out.println("키 값으로 value찾기: " + map.get("키 값")); } 이렇게 하면 List안의 배열을들 하나하나 돌릴 수 있고, 돌리면서 그 안에 세부내용도 볼 수 있다.

JAVA) 자바 Math.ceil 자세히 알아보기(올림, 소수점 버리기)

페이징 처리를 구현하다가 공식중에 Math.ceil이 있는데, 좀 이해가 가지 않고 헷갈렸다. Math.ceil이 올림인건 알지만, 소수점으로 계산했을때, 정수로 했을때 등등이 달랐기 때문에 어려웠다. 결과를 구글링 해보았지만 예제도 부족했고, 이참에 확실히 알아야 까먹지 않을것같아서 적어보기로 했다. Math 클래스 java.lang 패키지에 속한 클래스로, 수학에서 자주 사용되는 상수와 함수들이 구현되어있는 클래스다. 여기 구현된 메서드들은 static Method 이므로, 객체를 생성하지 않고도 바로 구현할 수 있다. Method 종류 1) random(랜덤 뽑기) 2) abs(절대값) 3) min(최소), max(최대) 4) ceil(올림), floor(내림), round(반올림) 5) pow, ..

JAVA) 예외 처리 try~catch, throws, 사용자 정의 예외

try ~ catch ~ finally try { 예외 발생 가능성이 있는 코드 } catch(예외 종류) { 해당 예외 발생시 실행할 코드 } finally { 예외가 발생하든 안하든 무조건 실행할 코드 } if ~ else if ~ else 와 비슷하다. try 문에 예외가 발생할 수 있는 코드를 넣고, 예외가 발생할 경우 대처 방안을 catch에 넣는다. 각 예외 종류에 따라 다르게 처리하고 싶으면 else if() 처럼 catch()를 여러 개 둘 수 있다. 여기까지는 if문과 똑같지만 마지막이 다르다. if문의 경우, 앞에서 조건이 해당되는경우 마지막 else문은 실행하지 않지만, try문의 finally는 앞에서 실행이 다 된 이후에 무조건 finally문을 실행한다. catch문에는 예외발생..

JAVA) 오류와 예외, 예외, 오류 메세지 보는 방법

1. 오류와 예외 1) 오류(error) 시스템적인 오류 -> 프로그램에서 제어 불가능. ex) 메모리 오버플로우, 메모리 부족 등 오류 종류 - 컴파일 오류(compile error): 문법적 오류. - 실행오류(runtime error): 프로그램의 의도치 않은 동작(=bug), 중지되는 경우. 2) 예외(Exception) 개발자가 구현한 로직안에서 발생 -> 프로그램으로 제어 가능. 발생할 상황을 미리 예측해서 처리할 수 있다. ex) 배열 요소를 출력하려는데 값이 없는 경우, 데이터 타입이 맞지 않는 경우 등 예외 종류 Compile Checked Exception: 컴파일 전에 알 수 있는 예외. ex) IOException, ClassNotFoundException 등등 Compile Unc..

JAVA) 인터페이스(interface) 정의, 사용 이유

인터페이스란? 클래스들이 구현해야 하는 동작을을 강제한다. 추상화클래스에서 추상메서드로 구현한것은 상속받은 클래스가 무조건 오버라이딩 해야했던 것처럼 인터페이스가 가진 모든 메서드는 구현받은 클래스가 모두 구현해야한다. 즉, 그 안의 모든 메서드를 전부 복붙해서 가져와야 한다는것이다. 인터페이스는 기능의 틀을 짜놓고 가져아서 구현하게 하는 것에 목적이 있기때문에 외부에서 잘 가져갈 수있도록 인터페이스의 멤버는 public 접근제한자만 쓴다. (default, static제외) 인터페이스는 정말 강력한 규제다. 추상화는 추상메서드만 가져오면 됐지만, 인터페이스는 모두, 하나도 남김없이 다 가져와서 구현해야한다. 그런데 자바 8부터는 강력한 규제가 완화됐다. 자바 8부터 달라진 interface 이전에는 인..

JAVA) 자바 추상화(abstract)

추상화는 상속을 강제하는 방법 중 하나다. abstract로 지정하면 바로 사용할 수 없고 상속을 해야만 사용할 수 있다. 추상화 사용이유 1) 상속과 오버라이딩을 강제하기 위해 강제성을 부여하지 않고 클래스를 정의하게될 때 문제점. a가 A를 상속한다고 했을때, a는 A의 메서드를 오버라이딩해서 사용할 수 있다. 근데 오버라이딩은 선택일뿐 자식은 부모의 것을 쓰든 안쓰든 부모입장에서는 강제할 방법이 없다. 즉, 자식은 자유성을 가지고 있다. 근데 만약 만약 모든 부품을 똑같이 만들어야되는데 자식이 실수로 하나를 빠뜨리게된다면?? 이런 상황을 막기 위해 필수로 사용해야 하는 것을 추상메서드로 적는다. 자식이 빠뜨렸을 경우, 오류가 나게해서 무조건 쓰게 만드는것이다. 2) 공통된 기능을 통일하기 위해. 꼭..

JAVA) 자바 Getter/Setter 의미와 왜 사용하는지 알아보자

getter/setter를 알기 전에, 접근제한자를 먼저 알아야한다. 만약 접근제한자가 뭔지 모르면 앞의 포스트를 읽고오길 추천한다. https://luanaeun.tistory.com/140 JAVA) 접근 제어자: public, protected, default, private와 Getter/Setter 접근 제어자 의미 자바는 어떤 클래스와 그 멤버에게 어느정도까지 접근할 수 있는지를 설정할 수 있다. 그 접근 권한을 지정하는것이 접근 제어자다. 사용 이유 접근을 제한하는거니 당연히 보 luanaeun.tistory.com Getter, Setter가 무엇인가? private를 관리하는 메서드. 위에서 private할때 다른 클래스에서 접근하려면 해당 클래스 안의 메서드를 통해서만 가능하다고 했다...

JAVA) 접근 제어자: public, protected, default, private와 Getter/Setter

접근 제어자 의미 자바는 어떤 클래스와 그 멤버에게 어느정도까지 접근할 수 있는지를 설정할 수 있다. 그 접근 권한을 지정하는것이 접근 제어자다. 사용 이유 접근을 제한하는거니 당연히 보안과 관련있다. 중요하거나 함부로 바꾸면 안되는 값들은 아무나 접근할 수 없어야하고, 누구나 자주사용하는 것은 모두가 사용할 수 있도록 자유롭게 해야한다. => 사실상 개발코드 자체가 보안에 신경써야하기 때문에 클래스의 멤벼변수는 대부분 private를 사용한다. 접근 제어자 종류 같은 클래스 같은 패키지 다른 패키지 public O O O protected O O △(상속관계만) default O X X private O X X public 같은 패키지 내에 모든 클래스 O, 다른 패키지 O protected 같은 패키..

JAVA) 자바 API

API(Application Programming Interface) 라이브러리와 같은 의미로, 자바가 제공하는 자바를 제어하는 방법. 개발자들이 자주 사용하는 클래스, 인터페이스의 모음. 대표적인 예로 System.out.println()이 있는데 사실 결과를 화면에 출력하는 로직은 엄~청 복잡하다. 근데 우리는 딱 한줄로 화면에 출력할 수 있는것처럼, 자바안에서 어떤 행동을 할 수 있도록 간단한 방법을 제공하는것이 API이다. API document API 종류와 사용방법을 명시해 놓은 문서. 버전에 따라 API사용법이 조금씩 다르기 때문에 버전에 맞는 API document를 찾아야한다. 8버전 document: https://docs.oracle.com/javase/8/docs/api/ 필요한 A..

반응형