본문 바로가기

프로그래밍 /JAVA

[JAVA] 문자열중 가운데 글자 출력 문자중 가운데 글자 가져오기문제 ~~ class StringEx{ String getMiddle(String word){ if(word.length()!=0){ // 글자에 조건 return word.substring((word.length()-1)/2, word.length()/2+1); } else{ // 글자가 없으면 return "아무글자가 없음"; } } /// 메인 메서드 public static void main(String[] args){ StringEx se = new StringEx(); System.out.println(se.getMiddle("programer")); } } 출력값 더보기
[Java] Thread(쓰레드) Thread란?? - 프로세스내에서의 제어 흐름(하나의 실행 단위) - CPU이용량 단위의 기본, 각 스레드마다 PCB를 가지고 있다. - 같은 프로세스에 속한 각 쓰레드들은 공유 가능 -> 프로세스를 여러개 띄운것과 차이 멀티쓰레드 동시에 여러가지 작업을 동시에 수행할 수 있게하는것 특 자원을 효율적으로응답성이 향상작업이 분화되어 코드가 간결 ※ 동기화에 주의※ 교착상태가 발생하지 않도록 주의※ 각 쓰레드가 효율적으로 고르게 실행되게 해야한다. 쓰레드 구현 및 실행 1.Thread클래스 상속 // 클래스의 run을 오버라이딩2. Runnable 인터페이스 구현 // 인터페이스의 run을 구현 1)호출static Thread currentThread() 현재 실행중인 쓰레드를 참조 반환String get.. 더보기
[Java]Generics 제네릭스 지네릭스(Generics)란? (영어 - generic) 포괄적인, 일반적인 - 컴파일시 타입을 체크해 주는 기능 ( compile - time type check) - JDK5 부터- 객체의 타입 안정성을 높이고 형변환의 번거로움을 줄여줌 ( 하나의 컬렉션을 대부분 한 종류의 객체만 저장) 장점. 1. 타입의 안정성을 제공2. 타입의 체크와 형변환을 생략할 수 있으므로 코드가 간결!! ※(Box 의 객체 생성. 참조변수와 생성자에 대입된 타입이 일치해야 한다) 용어 Box ==>지네릭 클래스 T의 box ,또는 T BoxT ==>타입변수 또는 타입 매개변수(T는 타입 문자)Box ==>원시 타입( raw type) 제한 static 멤버에는 타입변수T를 사용할수 없다, static T item; // .. 더보기
[Java]Collections Framework 1) Collection Framework 란 다수의 데이터를 쉽게 처리할 수 있는 방법을 제공하는 클래스들로 구성(ex)Vector,ArrayList,HashSet java.utill 패키지에 포함 2) 종류 인터페이스 1.List 순서가 있는 데이터의 집합 , 데이터의 중복을 허용한다.ex) 대기자 명단 구현클래스 : ArrayList Vector 2.Set 순서를 유지하지 않는 데이터의 집합, 데이터의 중복을 허용X (집합이므로 데이터의 순서와는 상관없이 add수행 중복은 되지 않는다ex)양의 정수 ,소수의집합 구현 클래스 : HashSet, TreeSet 3.Map (key) 와 (value) 의 한쌍으로 이루어진 데이터의 집합 순서는 유지 되지 않으며, 키는 중복 허용 X 값은 중복 가능 하다 .. 더보기
[Java]클래스 메서드 & 인스턴스 메서드 인스턴스 메서드! =>인스턴스 메서드 변수와 작업을 하는 메서드의 작업을 하는 메서드 1.인스턴스 생성 이후 , '참조변수.메서드이름()' 으로 호출2.메서드 내에서 인스턴스 변수로 사용가능 클래스 메서드(static 메서드) !!! 인스턴스와 관계없는(인스턴스 변수나 인스턴스 메서드를 사용하지 않는 메서드 =>>객체 따로 생성 없이 '클래스이름.메서드이름()' 으로 호출 1.메서드 내에서 인스턴스변수 사용 불가 2.메서드 내에서 인스턴스변수를 사용하지 않는 다면 static 을 붙이는 것을 고려한다. 클래스의 멤버변수 중 모든 인스턴스에 공통된 값을 유지해야하는 것이 있는지 살펴 보고 static을 붙인다 -메서드 중 인스턴스 변수나 인스턴스 메서드를 사용하지 않는 메서드에 -> static 을 붙인다.. 더보기
[Java]객체지향 -다향성 및 instanceOf 연산자 다형성이란!! '여러가지 형태를 가질수 있는 능력' 따라서 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있다 // (조상클래스의 타입의 참조변수로 자손클래스의 인스턴스를 참조할 수 있게 만들었다.) --> 조상타입의 참조변수로 자손타입의 인스턴스를 참조할 수 있다. 단 .자손타입의 참조변수로 조상 타입의 인스턴스를 참조할 수는 없다. 참조변수의 형변환!-->> 서로 상속관계에 있는 타입간의 형변환만 가능하다 자손타입--> 조상타입(up-cating)자손타입--> 조상타입(down-casting):형변환 생략 불가 instanceof 연산자※ instanceof 연산자는 특정 클래스의 인스턴스인지 확인하는 연산자이다. 다시 말하면참조변수가 참조하고 있는 인스턴스의 실제 타입을 Check 하는데 사용.. 더보기
[JAVA]오버로딩 & 오버라이딩 JAVA 기초 오버라이딩(Overriding)이란!!! ※사전적으로는 ~~의 덮어쓰다 (overwrite) 조상클래스로부터 메서드의 내용을 변경하는 것을 오버라이딩이라고 한다. 상속받은 것을 그대로 사용하기도 하지만 자손클래스 자신의 맞게 변경해서 사용할 경우가 많다 오버라이딩 조건 자손클래스에서 오버라이딩하는 메서드는 조상 클래스의 메서드와 - 이름이 같아야 한다.- 매개변수가 같아야 한다.- 반환타입이 같아야 한다. ※※ 접근제어자는 조상클래스의 메서드 보다 좁은 범위로 변경 X조상클래스의 메서드보다 많은 수의 예외를 선언할 수 X인스턴스 메서드를 static메서드로 또는 그 반대로 변경X 오버로딩(overloading)이란 !!!※사전적으로는 ~~과적하다 (overload) 같은 이름으로 다수의 메.. 더보기
[JAVA] 인터페이스 & 추상클래스 차이점!! 추상클래스(abstract)란!! 클래스가 설계도 라면 추상클래스는 '미완성 설계도' 추상메서드 (미완성메서드)를 포함하고 있는 클래스 *.* 추상메서드 : 선언부만 있고 구현부( 몸통, body) 가 없는 클래스 꼭 필요하지만 자손마다 다르게 구현 될 것으로 예상되는 경우에 사용 추상 클래스를 상속받는 자손 클래스에서 추상메서드의 구현부를 완성 인터페이스(Interface)란!! 일종의 추상클래스. 추상클래스(미완성 설계도) 보다 추상화가 높다. 실제 구현된 것이 전혀없는 기본설계도(알맹이 없는 껍데기) 인스턴스를 생성할 수 없고 클래스 작성에 도움을 줄 목적으로 사용된다. class 대신 interface 를 사용할 뿐 클래스를 상속받는것과 같다 차이점!!!! ->추상클래스(abstract)추상메서드.. 더보기
[JAVA]객체지향기초 및 클래스 자바(JAVA) 객체지향언어 및 클래스와 객체 자바(JAVA)는 객체지향(Object Oriented) 프로그래밍 언어입니다. 객체지향 프로그래밍의 근간이되는 객체지향이론은 실제 세계는 사물(객체)로 이루어져 있으며, 발생하는 모든 사건들은 사물(객체)간의 상호작용이라는 기본 개념을 가지고 있습니다. 기본적인 객체지향언어이론은 '상속', '캡슐화', '추상화; 개념 중심 !!!! 1. 객체지향언어 객체지향언어는 기존의 프로그래밍 언어에 몇가지 새로운 규칙을 추가하여 보다 발전된 형태의 언어입니다. 이러한 규칙들을 이용해서 코드간에 서로 관계를 맺어주어 보다 유기적으로 프로그램을 구성하는 것이 가능합니다. 객체지향언어의 특징은 -코드의 재사용성이 높다. -코드의 관리가 용이하다. -신뢰성이 높은 프로그래밍.. 더보기