Language/Java 184

stack,queue

import java.util.*; public class Ex11_2 { public static void main(String[] args) { Stack st = new Stack(); Queue q = new LinkedList(); // Queue 인터페이스의 구현체인 LinkedList를 사용 st.push("0"); st.push("1"); st.push("2"); q.offer("0"); q.offer("1"); q.offer("2"); System.out.println("= stack ="); while(!st.empty()) { // empty() Stack이 비어있는지 알려준다. System.out.println(st.pop()); // st.pop() 스택에서 요소 하나를 꺼내서 출..

Language/Java 2021.03.30

for each 문

for문과 동작이 일치. 수식 : for ( type i : list) { } public class Test005 { public static void main(String[] args) { int[] iArray = new int[] {10, 3, 5, 7, 9}; for (int Temp :iArray) { System.out.println(Temp); } // for each 문 아래의 for 문과 동작이 같다 10 이 Temp 에 갔다가 나오고 3 이 갔다가 나옴 } public static void main1(String[] args) { int[] iArray = new int[] {10, 3, 5, 7, 9}; for (int i = 0; i < iArray.length; ++i) { Sy..

Language/Java 2021.03.30

iterator

Iterator : 컬렉션에 저장된 요소를 접근하는데 사용되는 인터페이스 컬렉션 클래스에 대해 iterator() 를 호출하여 Iterator를 얻은 다음 반복문, 주로 while 문을 사용해서 클렉션 클래스의 요소들을 읽어 올 수이따. hasNext() 다음을 불러올거다. ex) iterator.hasNext()이런식으로사용 아래 예제에서는 iterator를it으로만들었음 import java.util.*; public class Ex11_5 { public static void main(String[] args) { ArrayList list = new ArrayList(); list.add(1); list.add(2); list.add(3); list.add(4); list.add(5); Itera..

Language/Java 2021.03.30

ArrayList

ArrayList : List 인터페이를 구현하기 때문에 데이터의 저장순서가 유지되고 중복을 허용 데이터를 순차적으로 저장한다. ArrayList : ㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁ 배열 LinkedList : 기차처럼 연결되어 있다. ㅁ-ㅁ-ㅁ-ㅁ-ㅁ-ㅁ-ㅁ-ㅁ-ㅁ 연결 import java.util.*; // util 디렉토리안에 있는 모든것을 사용 Integer 로 Boxing list1.add(3.14); // double = > Double 로 Boxing list1.add("공부에 집중하자"); list1.add(new String("공부에 집중하자2")); for (int i = 0 ; i < list1.size(); ++i) { System.out.println(list1.get(i)); } } }

Language/Java 2021.03.30

제네릭 메서드 기법

매우편함으로 무조건 사용 public class Test001 { // 제네릭, 지네릭스 Method기법 : T type 를 넣는다. // 자동형변환을 안해줘도 알아서 타입을 바꿔준다. // 아주 간단하다 static String DataToString(T Num) { return "[" + Num + "]"; } // Method 오버로딩 기법 (제네릭에 비해 노가다) /*static String DataToString(int Num) { return "[" + Num + "]"; } static String DataToString(double Num) { return "[" + Num + "]"; }*/ public static void main(String[] args) { String iTemp ..

Language/Java 2021.03.30

wrapper class, boxing unboxing

// warpper class : 기본형을 감싸는 (관련 Method 제공) class public class Test005 { public static void main(String[] args) { Integer aInteger1 = new Integer(100);// boxing : 명시적 / 수동 wrapper c로 감싸는것 Integer aInteger2 = 101; // boxing : 묵시적 / 자동 Integer가 wrapper c int iNum1 = aInteger1.intValue();// unboxing : 명시적 / 수동 래퍼클래스를 푸는것 int iNum2 = aInteger2;// unboxing : 묵시적 / 자동 int iNum-> 언박싱 } }

Language/Java 2021.03.29

Calendar

import java.util.*; public class Ex10_1 { public static void main(String[] args) { // 기본적으로 현재날짜와 시간으로 설정된다. Calendar today = Calendar.getInstance(); System.out.println("이 해의 년도: " + today.get(Calendar.YEAR)); System.out.println("월(0~11, 0:1월): " + today.get(Calendar.MONTH)); System.out.println("이 해의 몇 째 주: " + today.get(Calendar.WEEK_OF_YEAR)); System.out.println("이 달의 몇 째 주: " + today.get(Cale..

Language/Java 2021.03.29

StringBuffer, StringBuilder

문자열을 추가하고 , 수정하는것 public class Test006 { public static void main(String[] args) { String s = "오늘 술 한잔 하실?"; String s2 = s.concat(" ㄴㄴ, 별로 안땡김"); // 제일 빠름 System.out.println(s); System.out.println(s2); StringBuffer sb = new StringBuffer("오늘 술 한잔 하실?"); StringBuffer sb2 = sb; sb2.append(" ㄴㄴ, 별로 안땡김"); // 두번째로 빠름 System.out.println(sb); System.out.println(sb2); StringBuilder sbb = new StringBuilde..

Language/Java 2021.03.29

String 클래스의 생성자와 메서드 중, split

나머지는 p.334~ public class Test004 { public static void main(String[] args) { String Original = " 안녕,하세요 저는, 대한민국의, 자바, 프로그래머, 입니다."; String[] Temp; Temp = Original.split(","); for(int i = 0 ; i < Temp.length; ++i) { System.out.println(Temp[i]); } String[] TT = new String [4]; TT[0] = "0000"; TT[1] = "1111"; TT[2] = "2222"; TT[3] = "3333"; for(int i = 0 ; i < TT.length; ++i) { System.out.println(T..

Language/Java 2021.03.29

hashCode 와 identityHashCode

public class Ex9_3 { public static void main(String[] args) { String str1 = new String("abc"); String str2 = new String("abc"); System.out.println(str1.equals(str2)); // 같은 객체를 참조하는가 equals는hashCode비교 System.out.println(str1.hashCode()); // hashCode는 같다 System.out.println(str2.hashCode()); System.out.println(System.identityHashCode(str1)); // str1과 str2는 다른 객체다. System.out.println(System.identit..

Language/Java 2021.03.29

equals()

equals 메소드는 주소값으로 비교를 하기 때문에 equals는 hashCode를 비교 서로 다른 객체를 비교할 때는 항상 false의 값을 가진다. 같은 주소값을 가지는것은 가능하나 같은 주소를 가지는건 불가능하다. ** ==등가비교연산자 * 기본형 : 저장되어 있는 값을 비교 * 참조형 : 객체의 주소값을 비교 class Person { long id; public boolean equals(Object obj) { if(obj instanceof Person) return id == ((Person)obj).id; //obj 가 Obj타입이라서 id 값은 참조하기 위해서는 Person타입 으로 형변환이 필요하다. else return false; // 타입이 Person이 아니라면 값을 비교 할 ..

Language/Java 2021.03.29

throw로 고의적 예외 발생

public class Ex8_6 { public static void main(String[] args) { try { Exception e = new Exception("고의로 발생시켰음"); // 예외가 만들어졌다. System.out.println("---------절취선 ---------"); throw e ; //예외를 발생시키다. // throw new Exception("고의로 발생기켰음"); 위의 두 줄을 한 줄로 만듬. } catch (Exception e) { System.out.println("에러 메세지 : " + e.getMessage()); e.printStackTrace(); } System.out.println("프로그램이 정상 종료되었음"); } } checked 예외, ..

Language/Java 2021.03.29

예외클래스의 계층구조 / printStackTrace 와getMessage

하위 계층부터 catch문을 입력한다. 이유 : 좁은 개념부터 확인 한 다음 그래도 안되면 넓은 개념에서의 예외를 수정 ** catch 문은 위에서 부터 하나씩 검사한다. ex) 첫 번째 검사에서 일치하는 catch 블럭을 발견하면 두 번째 catch 블럭은 실행시키지 않는다. 선언 try { } catch () { } public class Ex8_4 { public static void main(String[] args) { System.out.println(1); System.out.println(2); try { System.out.println(3); System.out.println(0 / 0); // 0/0 을 만들어서 고의로 ArithmeticException을 만든다 System.out...

Language/Java 2021.03.29

try - catch 문 기본

Exception 을 사용하는 이유 정의 : 프로그램 실행 시 발생할 수 있는 예외의 발생에 대바한 코드를 작성하는 것 목적 : 프로그램의 비정상적인 종료를 막고, 정상적인 실행상태를 유지하는 것 try { // 예외가 발생 할 것같은 문장을 넣는다. } catch () { } ** 예외가 발생 하기 전까지의 코드를 실행하고 예외가 발생한 순간 catch문으로 점프. public class Ex8_1 { public static void main(String[] args) { System.out.println(1); try { System.out.println(2); System.out.println(3); } catch (Exception e) { System.out.println(4); // 에외가 ..

Language/Java 2021.03.29

내부 클래스의 제어자와 접근성 예제2

public class Ex7_13 { class InstanceInner { } static class StaticInner { } InstanceInner iv = new InstanceInner(); // 인스턴스 멤버 간에는 서로 직접 접근이 가능하다. static StaticInner cv = new StaticInner(); // static 멤버 같에는 서로 직접 접근이 가능하다. static void staticMethod() { // static멤버는 인스턴스멤버에 직접 접근할 수 없다. // InstanceInner obj1 = new InstanceInner(); StaticInner obj2 = new StaticInner(); // 굳이 접근하려면 아래와 같이 객체를 생성해야한다...

Language/Java 2021.03.26

내부 클래스의 제어자와 접근성 예제1

public class Ex7_12 { class InterfaceInner { int iv = 100; //static int cv = 100; // 에러! static변수를 선언할 수 없다. final static int CONST = 100; //final static는 상수이므로 허용 } static class StaticInner {// inner static클래스만 static멤버를 선언할 수 있다. int iv = 200; static int cv = 200; // static클래스만 static멤버를 정의할 수 있다. } void myMethod() { class LocalInner { int iv = 300; //static int cv = 300; // 에러! static변수를 선언할 ..

Language/Java 2021.03.26

interface 접점을 잡는.

interface SmartPhone { // interface를 사용한다. //interface : 추상클래스의 일종 public static final int iNum1 = 100; int iNum2 = 100; // public static final 생략하였지만 적용됨 public abstract void Calling(); // 밑에도 이런식으로 만들어라 public void Internet(); public void Camera(); static void PrintNumA() { // 자식 클래스에서 재 정의(Override) 불가 System.out.println(iNum1); } default void PrintNumB() { // default : interface에 구현되어 있는 메소드..

Language/Java 2021.03.26

프로토콜 protocol

terms.naver.com/entry.naver?docId=2271814&cid=51207&categoryId=51207 프로토콜 앞서 설명한 것처럼 인터넷에서의 데이터 전송은 계층 4의 TCP와 UDP, 계층 3의 IP에 의해 이루어진다. TCP/IP 모델에서는 사용자 데이터 전송이 TCP, UDP, IP에 의해 이루어지지만, 이들이 올바르게 동 terms.naver.com terms.naver.com/entry.naver?docId=2271799&cid=51207&categoryId=51207 프로토콜 프로토콜(Protocol)은 통신 시스템이 데이터를 교환하기 위해 사용하는 통신 규칙이다. OSI 7계층 모델에서는 각 계층에서 수행되는 프로토콜이 서로 독립적이라고 간주한다. 따라서 계층 1에는 계..

Language/Java 2021.03.26

toString의 개념

class SpringA { // 아무것도 상속하지 않아도 Object 가 자동 상속됨 /자동으로 9개 메소드 보유 public String toString() { return "SpringA의 toString을 수정함"; } } class SpringB extends SpringA { // 아무것도 상속하지 않아도 Object 가 자동 상속됨 } public class Test001 { public static void main(String[] args) { SpringA aSpringA = new SpringA(); String aString = "["+aSpringA.toString()+"]"; System.out.println(aSpringA); System.out.println(aSpringA...

Language/Java 2021.03.26