개발/JAVA 21

[JAVA]오류 - 기본클래스 XXX 을(를) 찾거나 로드할 수 없습니다.

프로그램을 실행하려 했더니 콘솔창에 이런 오류가 뜬다. 열심히 구글링을 해보았다. properties - Run/Debug Settings에서 지우고 project clean한 뒤 실행 해보기 해보았지만 안된다. 그 외에 여러가지 해결방안들을 구글링해서 다 해봤지만 안되었다. 결국 새로운 프로젝트를 파서 거기에 하나씩 다 옮겨서 실행해 봤더니 잘 실행 되었다. 아마 classpath문제이거나 프로젝트 내의 패키지안의 클래스 파일을 찾아가는데 경로가 틀려서 경로를 새로 설정 해줘야 하는것같다.

개발/JAVA 2021.03.22

[JAVA]자바 Thread 스레드

이번엔 스레드에 관해서 알아 보겠다. 스레드를 알려면 프로세스와 멀티태스킹의 개념을 알아야 한다. 말만 보면 어느정도 다 들어본 말이라 무슨 의미인줄 알수 있을것이다. 프로세스는 저장장치에서 실행명령을 기다리는 명령어들의 집합을 의미하고 쉽게 생각하면 자신만을 할당 받는 '실행중인 프로그램'이란 뜻이다. 멀티 태스킹은 우리가 평소에 당연하게 받아들이는 것이다. 컴퓨터를 사용하면 우리는 동시에 여러개의 프로그램과 활동을 동시에 가동 한다. 예를 들어, 컴퓨터 전원을 켜고 마우스를 움직여 Chorme을 눌러 들어 오는 행위를 하는 동안 컴퓨터는 한가지 일만 하지 않는다. 마우스를 움직이고 크롬을 누를 때 크롬이 켜지면서 우리는 마우스를 움직일수도 있고 다른화면을 띄워 다른 작업을 할 수 있다. 크롬을 누르면..

개발/JAVA 2021.03.10

[JAVA]컬렉션 HashMap(해쉬맵)의 사용

HashMap은 컬렉션프레임워크의 주요 인터페이슨 Map에서 가장 대표적으로 많이 사용 되는 Map컬렉션 입니다. Map의 성질을 그대로 받은 인터페이스를 가지고 있습니다. 여기서 Map은 Key와 Value값을 받은 Entry객체로 구성되어 있습니다. Key, Value를 받는데 여기서 가장 중요한 점은 Key는 중복된 값을 받을 수 없습니다. 중복된 값이 들어오면 자동으로 배척하게 됩니다. 앞에 포스팅한 List에 관해 먼저 알고 오면 더 쉽습니다. List컬렉션 프레임워크 ↓↓↓ 2021.03.08 - [개발/JAVA] - [JAVA] 자바 컬렉션 프레임워크(collection framework) - List [JAVA] 자바 컬렉션 프레임워크(collection framework) - List 오..

개발/JAVA 2021.03.09

[JAVA] 자바 컬렉션 프레임워크(collection framework) - List

오늘은 컬렉션 프레임워크에서 List 컬렉션 클래스에 대해 이야기 해보겠다. 자바에서 컬렉션 프레임워크는 다수의 데이터를 효과적으로 처리할 수 있는 표준화된 클래스의 집합을 의미한다. 데이터를 저장하는 자료구조와 데이터를 처리하는 알고리즘을 클래스로 만들어 놓은것을 말한다. 그리고 이런 프레임워크는 자바의 interface를 사용하여 구현할 수 있다. 몇가지 있지만 가장 많이 사용되고 중요한것 3가지만 알면 크게 문제 없다. 1. List 인터페이스 2. Set 인터페이스 3. Map 인터페이스 이렇게 3가지 인데, 이 중에서 List와 Set 인터페이스는 모두 Collection 인터페이스를 상속받지만, 구조상의 차이로 인해 Map 인터페이스는 별도로 정의된다. 따라서 List 인터페이스와 Set 인터..

개발/JAVA 2021.03.08

[JAVA] 자바 instanceof 연산자의 사용

약 2주 전쯤 업캐스팅과 다운캐스팅에 관한 글을 올리면서 instanceof 연산자에 관한 글을 올리겠다고 했었지만, 그동안 다른 내용으로 글을 적기도 했었고 정보처리기사 필기시험 준비를 하느라 미루고 미루다 드디어!! 오늘 시험치고와서(가채점결과 합격하였음^^) 적습니다. 사실 내내 맘속에 불편함으로 자리잡고 있었던 instanceof관한 포스팅에 대한 약속을 드디어 지키려합니다. "instanceof는 무엇일까요??" 이 전의 글에서 업캐스팅과 다운캐스팅을 설명하면서 마지막에 instanceof를 언급했다. 업캐스팅과 다운캐스팅↓↓ 2021/02/22 - [개발/JAVA] - JAVA 업캐스팅, 다운캐스팅 JAVA 업캐스팅, 다운캐스팅 자바에서 캐스팅(casting)은 형변환, 타입을 변경시키는 것을..

개발/JAVA 2021.03.08

[JAVA]자바 Random 클래스를 활용한 로또 프로그램(중복제거, 순서정렬)

오늘 만들어 본것은 Random클래스를 활용한 로또 프로그램이다. Random을 배우면 무조건 필수적으로 한번쯤은 만들어보는 그런 거랄까..? 사실 대한민국 국민이라면 Random함수를 처음 배울 때 누구나 로또를 가장먼저 떠올릴것이다. 나도 오늘 배우자마자 로또 프로그램이나 만들어보자고 생각해서 바로 만들어 보았다. 생각보다 간단하고 쉽다. 조금만 배운사람이면 누구나 만들 수 있으니 다들 한번쯤 만들어 보길 바란다. 그전에 Random에 대해 알고 넘어 가보자. Random 클래스가 무엇이냐 하면 java.util 패키지중 하나인 Random은 난수발생기이다. 일정 범위가 주어지면 그 사이의 수 중 하나를 임의로 선택하게 된다. 걔 중에 가장 많이 쓴다고 하면 역시 nextInt()메서드가 아닐까 싶다..

개발/JAVA 2021.03.05

[JAVA] 자바 객체배열을 사용한 전화번호 출력 프로그램2

최근에 만들어 보았던 전화번호 출력 프로그램을 끝까지 다 완성못시킨게 며칠동안 마음에 계속 걸렸다. 이번주 정처기 필기 시험인데 필기 공부해야하는데 자꾸 이 프로그램이 눈에 밟혀서 도저히 정처기가 눈에 들어오지 않았다. 그래서 결국 나머지 기능들을 구현해서 오류가 없는 완벽한(?있을수있나 싶지만) 프로그램을 완성했다. 우선 처음 구현했던 프로그램 ↓↓ 2021/02/28 - [개발/JAVA] - [JAVA] 자바 객체배열을 사용한 전화번호 출력 프로그램 [JAVA] 자바 객체배열을 사용한 전화번호 출력 프로그램 오늘 만들어 볼 간단한 프로그램은, 이름과 전화번호를 입력하여 배열에 저장한 뒤 이름을 입력하면 전화번호가 출력되는 프로그램 입니당. ex) 인원수 >> 3명 이름,번호 >> 김김김 1 이름,번호..

개발/JAVA 2021.03.03

[JAVA] 자바의추상클래스

자바의 추상클래스는 사실 어떻게 사용하는가도 중요하지만 추상클래스를 왜 사용해야하는가? 이게 더 중요한 문제인것 같다. 자바라는 객체 지향 프로그래밍에서 제일 중요한것은 클래스를 통한 객체화이다. 클래스를 여러가지 생성해서 각 클래스마다 특징을 규정하고 여러 클래스들을 상속받고 결합하고 지지고볶고 해서 프로그램을 구현해낸다. 그것이 절차 지향과의 큰 차이점인데 프로그램을 순서대로 구현하는 것이 아닌 각각 부분을 구현 해놓은 뒤 필요하면 가져와서 사용하는 것이다. 그것이 객체 지향 프로그래밍의 사용 방법이다. 여기서 추상클래스란 무엇인가 말그대로 실체를 가진것이 아닌 추상적인 클래스라는 것인데, 클래스 앞에 abstract가 붙으면 이 클래스는 추상적인 클래스가 되서 안에 존재하는 모든 변수, 메서드 등등..

개발/JAVA 2021.03.01

[JAVA] 자바 객체배열을 사용한 전화번호 출력 프로그램

오늘 만들어 볼 간단한 프로그램은, 이름과 전화번호를 입력하여 배열에 저장한 뒤 이름을 입력하면 전화번호가 출력되는 프로그램 입니당. ex) 인원수 >> 3명 이름,번호 >> 김김김 1 이름,번호 >> 이이이 2 이름,번호 >> 최최최 3 찾고싶은 사람 >> 김김김 김김김의 번호는 1입니다. 찾고싶은 사람 >> 박박박 존재하지 않는 이름입니다. 찾고싶은 사람 >> 그만 프로그램을 종료합니다. 뭐 이런 프로그램입니다. (전체 코드는 제가 복습하는 차원에서 처음부터 코드를 다 설명 하고 마지막에 올려놨습니다.) 우선 People이라는 클래스를 만들어서 그곳에 이름과 번호가 담기는 변수의 주소를 만들어 놓습니다. 그 뒤 생성자를 만들고, 이름을 입력하면 번호를 보여주는 객체메서드를 생성했습니다. 나중에 밑에 ..

개발/JAVA 2021.02.28

[JAVA] 자바 업캐스팅, 다운캐스팅

자바에서 캐스팅(casting)은 형변환, 타입을 변경시키는 것을 뜻한다. 부모와 자식의 관계 즉 상속 관계에서 상위클래스에 속하는 슈퍼클래스와 하위 클래스에 속하는 서브 클래스의 형변환을 캐스팅이라고 하고 서브 클래스가 슈퍼클래스로 변환되는 것을 업캐스팅, 그 반대를 다운캐스팅이라고 한다. 업캐스팅 자바의 상속관계는 상위클래스의 모든 특성을 하위 클래스가 받아서 사용할 수 있다. 그 말은 서브 클래스는 수퍼클래스 취급을 받을수 있다는 말인데 여기서 업캐스팅을 통해 객체가 슈퍼클래스 타입으로 형변환을 시킨다. 위의 코드에서 25행 부분만 이런식으로 바꿨는데 자동으로 JVM이 컴파일하면서 인식하지만 굳이 붙여준 이유는 관행상 부모 유형을 명시하는건 권장한다고 한다!! 그렇다면 업캐스팅은 왜 사용하는 것일까..

개발/JAVA 2021.02.22