개발일지/자바74 입력 스트림 활용 - System.in.read() 밑의 그림 코드의 흐름을보면 정수타입에 값을 while문이 도는 동안 계속 입력을 받고있는중이다 그런데 조건이 '\n'(엔터키) 아닐때까지 돈다는 의미이다. 즉 엔터키가 눌러지면 while문을 종료를 시키는 흐름이다. abc를 입력을받고 엔터키를 누르게 되면 입력받은 값이 모두 인코딩된 코드값을 볼수가 있다. 마지막에는 엔터키의 아스키코드 값 13도 잘 출력이 되는걸 볼수가있다. 개발일지/자바 2022. 10. 5. 입력 스트림(System.in.read()) ※※※※※※※※ System.in.read() : 1바이트씩 읽는다 ※※※※※※※ 입력 스트림이란 말그대로 입력을 받아주는 통로라고 생각하면 된다. 밑에 코드를 실행하게 되면 흐름이 System.in.read(); 부분에서 in -> 입력 // read -> 읽다 라는 뜻이다. 즉 키보드에 입력을 받은걸 읽어서 out -> 출력을 해주는 것이다. 출력 결과에서보면 System.in.read();은 키코드(아스키 코드)의 값을 인지한다 그래서 7의 아스키코드 값은 55가 출력이 되는것이다. 개발일지/자바 2022. 10. 5. Lambda(람다식) 람다식을 활용한 두 수 비교하기 1. 먼저 두 수를 비교를 하는 기능을 편하게 쓰기위해서 인터페이스를 생성해준다 2. 두 수를 받을수있도록 메소드를 만들어 매개변수를 받아준다. 3. 인터페이스를 선언해 괄호안에 매개변수를 넣어주고나서 화살표 함수를 써주고 중괄호를 써준다 메소드의 선언부에서 반환자료형이 int로 되었다 즉 리턴을 해줘야하므로 중괄호안에 두 수를 비교해주는 식을 써주면 된다. 4. 그럼 언제든지 빠르게 두수를 비교하는 함수를 간편하게 반복적으로 사용이 가능하다. 하지만 단점이 있다 가독성이 떨어지는 단점이다 개발일지/자바 2022. 10. 5. Lambda(람다식) 활용 람다식(Lambda expression) 함수형 프로그래밍과 람다식 자바 객지 지향 프로그래밍 : 기능을 수행하기 위해서 객체를 만들고 그 객체 내무에 멤버 변수를 선언해서 수행하는 메소드를 구현 한다. 자바 8 부터는 함수형 프로그래밍 방식을 지원하고 이름 람다식이라고 한다. 함수의 구현과 호출만으로 프로그래밍이 수행되는 방식 함수형 프로그래밍 함수형 프로그래밍(Functional Programming : FP) 함수형 프롷그래밍은 순수함수를 구현하고 호출함으로써 외부 자료에 부수적인 영향 주지 않도록 구현하는 방식 입니다 순수 함수란 매개변수만을 사용하여 만드는 함수라고 보면 된다. (pure function) 즉, 함수 내부에서 함수 외부에 있는 변수에 영향을 주지 않습니다. *** 람다식 문법 *.. 개발일지/자바 2022. 10. 5. List 사용법 List의 특징 (C R U D) 1. 인덱스가 있다. 2. 순서가 있고, 중복이 가능하다. 선언하는 방법(정수 타입 리스트) ( ) 꺽쇠 안에는 어떠한 데이터를 리스트에 담느냐에 따라 정해진다. 값 추가 하는 방법 값을 추가할때 .add(); 를 사용하면된다. add(추가) 할때마다 순서대로 값이 리스트안에 담겨진다. 지정 인덱스값 위치에 값 추가하는 방법 인덱스 0번째 지정해서 값을 추가하는 것도 가능하다 그리고 따로 인덱스값을 주지않고 null을 사용하게되면 리스트의 맨뒤에 null값이 들어간다. 지정 인덱스 위치 값 삭제 하는 방법 .remove를 사용하면 값을 삭제를 할수가있다. 1. 괄호안에 지정한 인덱스값을 넣게되면 지정한 인덱스위치의 값을 remove(삭제)를 한다. 2. 만약 인덱.. 개발일지/자바 2022. 10. 4. String과 StringBuilder, StringBuffer의 차이점 Java 에서 문자열을 다루를 대표적인 클래스로 String , StringBuffer, StringBuilder 가 있다. 문자열을 변수에 담아서 두 변수를 합칠때 String을 두번 생성해야한다. 메모리낭비!!!! 하지만 StringBuilder, StringBuffer를 사용하게되면 힙메모리에 한번만 new 하게 된다. 그리고나서 글자를 추가를 원하면 .append메소드를 사용하면 따로 new안해도 글자를 뒤에 추가를 할수가있다. (메모리 절약) 연산이 많지 않을때는 위에 나열된 어떤 클래스를 사용하더라도 이슈가 발생할 가능성은 거의 없습니다. 그러나 연산횟수가 많아지거나 멀티쓰레드, Race condition 등의 상황이 자주 발생 한다면 각 클래스의 특징을 이해하고 상황에 맞는 적절한 클래스를 .. 개발일지/자바 2022. 10. 4. identityHashCode, hasCode의 차이점 identityHashCode란 System.identityHashCode()는 객체의 고유한 hashcode를 리턴하는 메소드이다. 인자로 전달된 객체에 대한 hashcode가 int로 리턴이된다. hasCode란 hashCode()는 모든 객체의 부모 클래스인 Object 클래스에 정의되어있다. 그리고 하위 클래스들은 hashCode()를 오버라이드할 수 있다. 그렇기 때문에 다음과 같이 서로 다른 객체이지만 hashcode가 동일한 경우가 있다. identityHashCode 와 hasCode 정리 Object의 hashCode() 메소드는 하위 클래스에서 override가 가능하기 때문에 객체마다 유일한 값을 갖고 있지 않다. 객체의 특성이 동일하다는 것을 표현하기 위해 이 메소드를 오버라이드할 .. 개발일지/자바 2022. 10. 4. 콜백 메소드의 활용 두개의 프레임이 있다 메인프레임, 서브 프레임이라고 가정하자 메인프레임에서는 숫자의 카운트를 확인하고, 서브 프레임에서는 숫자를 더하는 버튼과 숫자를 빼는 버튼을 만들거다 그런데 다른프레임에서 호출하고 응답 하기위한 메소드 이걸 콜백메소드라고 한다. 코드로 살펴보자 콜백 메소드를 사용하는 방법!!!! 1. 인터페이스를 만들어서 어떠한 기능을 사용할지 메소드를 만든다 2. 호출자와 응답자를 정한다. 여기 코드에서는 호출자 -> 서브프레임 // 응답자 -> 메인 프레임 먼저 인터페이스를 생성해서 어떤기능의 메소드를 호출할지 만들어준다. 그럼 서브프레임에서 액션리스너를 사용하기위해 1번처럼 인터페이스를 구현을 해준다. 그리고나서 2번코드를 보면 멤버 변수에 방금 만든 인터페이스를 선언해주고나서, 서브프레임에서.. 개발일지/자바 2022. 10. 4. 제네릭이란 ● 클래스에서 사용하는 변수의 자료형이 여러개 일수 있고, 그 기능(메서드)은 동일한 경우 클래스의 자료형을 특정하지 않고 추후 해당 클래스를 사용할 때 지정 할 수 있도록 선언하는 것 ● 실제 사용되는 자료형의 변환은 컴파일러에 의해 검증되므로 안정적인 프로그래밍 방식 ● 컬렉션 프레임워크에서 많이 사용되고 있음 ● 자료형 매개변수 T(type parameter) : 이 클래스를 사용하는 시점에 실제 사용할 자료형을 지정, static 변수는 사용할 수 없음 ● GenericPrinter : 제네릭 자료형 ● E : element, K: key, V : value 등 여러 알파벳을 의미에 따라 사용 가능 예) 재료라는게 추상적인 개념이라 추상 클래스로 만들어줘서 상속을 시켜준다. 플라스틱과 파우더는 재.. 개발일지/자바 2022. 9. 22. 동기화(synchronized) 개발일지/자바 2022. 9. 20. Thread.sleep 활용 개발일지/자바 2022. 9. 19. Thread란? (쓰레드 생성 및 활용법 2) 쓰레드를 생성하는 방법은 2가지가 있다. 첫번째 방법 : 1. Thread 클래스를 상속받는 방법 두번째 방법 : 2. Runnable 인터페이스를 구현하는 방법 두번째 방법 인터페이스를 구현을 해서 쓰레드를 생성해보자 쓰레드를 상속을 안받고 Runnable를 구현을 해준다. 그럼 추상메소드인 run()을 오버라이드를 해주면서 일반메소드로 재정의를 해주자! 그럼 쓰레드를 활용할 준비가 된것이다. 그럼 이제 힙 메모리에 MyFrame1을 초기화를 해준다 그리고나서 Thread를 힙 메모리에 올려서 초기화를 해주자 그럼 초기화된 Myframe1을 매개변수로 넣어준다. 그럼 쓰레드가 생성이 된 것이다. 그럼 쓰레드 t1변수에 접근해서 start()메소드를 호출해주면 run()메소드가 동작한다. 개발일지/자바 2022. 9. 19. 이전 1 2 3 4 5 6 7 다음