전체 글 (143) 썸네일형 리스트형 스윙 Swing, 자바에서 GUI를 만들어주는 도구 ⭐ 스윙 Swing 자바에서 GUI를 만들어주는 도구 ⭐ 스윙의 JComponent JFrame JPanel Jbutton 등등... 화면과 관련된 작업을 할때 배치관리자 Layout을 이해해야 한다. Component 들을 어떻게 배치할 것인지 ⭐동서남북 배치 배치관리자 개념중에 보더레이아웃이라는 개념이 있다. BorderLayout은 컴포넌트를 동서남북 가운데로 배치하는 레이아웃이다. 프레임 (패널) 우리가 생성한 JButton 객체를 프레임에 붙인다. add(buttons[i], directions[i]); 예제) 보더레이아웃과 배열 응용package _swing;import javax.swing.*;import java.awt.*;/** * 4.28 * 화면과 관련된 작업을 할때 * 배치관리자 L.. 내부 클래스 Inner Class, 논리적으로 응집력 있는 클래스 설계 ⭐내부 클래스 Inner Class 클래스 속 클래스 🤔Why?⭐ 논리적인 그룹화 외부클래스 Outer Class 와 내부 클래스 Inner Class 를 논리적으로 묶어 논리적으로 그룹화한다. 👍이는 코드의 가독성과 구조화를 향상해 관련 클래스들을 유지하는데 도움을 준다. 주로 두 클래스가 연관이 크고 다른 곳에서 쓸일이 없을때 쓴다. 멤버 내부 클래스 Member Inner Class 주로 외부클래스 필드에 선언 ✨정적 내부 클래스 Static Inner Class 외부 클래스의 필드에 선언되지만 static 키워드를 사용하여 선언되는 점이 다르다. public static class xxx { } 지역 내부 클래스 Local Inner Class 메서드 내부에 선언된다. 익명 내부 클래스 A.. 멀티 쓰레드 Multi Threading, 쓰레드 동시 수행... 동기화 처리가 중요 ⭐multi threading 여러 쓰레드가 동시에 수행되는 프로그래밍을 말한다. 여러 작업이 동시에 실행되는 효과를 만들 수 있다. 각각의 쓰레드는 자신만의 변수, 메서드 등 작업 공간을 가질 수 있다. 💀멀티쓰레딩 할 때의 주의점각 쓰레드 사이에는 공유하는 자원을 가질 수 있는데 여러 쓰레드가 자원을 공유하여 작업을 수행한다면 서로 자원을 차지하려는 race condition 발생 가능🐶 이에 따라 의도하지 않은 동작이 발생시킬 수 있다. ⭐이를 해소하기 위해 동기화처리가 필요하다 How? synchronized 구문을 추가해주자 예제)은행에서 하나의 계좌를 사용하는 연관관계 클래스(가족)들을 만들고동기화 처리를 해봤다. 1.은행계좌클래스를 만들고 입금, 출금 메서드 작성2.아빠, 엄마 클래스 작.. 쓰레드 Thread, 작업을 수행하는 단위 쓰레드 Thread 프로세스에서 작업을 수행하는 단위 ⭐process 프로그램이 실행되면 OS로부터 메모리를 할당받아 프로세스 상태가 된다. ⭐thread 하나의 프로세스에는 하나 이상의 쓰레드를 가지고 된다. 쓰레드는 실제 작업을 수행하는 단위이다. 메모리[@프로세스@프로세스@프로세스] ㄴ@프로세스[#쓰레드#쓰레드#쓰레드] 🤔Why?단일 쓰레드 환경이라면메모리 소모가 큰 작업을 할때 다른 작업을 할 수 없게 된다. 자바에서는 이럴때 run() 메소드를 활용해서 다른 작업을 동시에 할 수 있다. Run: cpu는 하나의 작업만을 수행 | Start => Runnable Not Runnable(sleep): 스케줄러가 메모리에 .. 예외처리 Exception, 예상치 못한 상황에 대비 ⭐예외처리 Exception 예상치 못한 상황, 예외를 처리하는 방법 이를 통해 💀 비정상 종료를 방지하고 💀 안정성과 신뢰성을 높일 수 있다. How? 😃 try-catch 구문 why? 😒 사용자를 믿을 수 없기 때문 ⭐finally 왜쓰는지? 자원해제를 위해.. 💀 프로그램이 점점 느려지는 메모리 누수 방지 ⭐ throw 예외를 강제로 발생시킨다 ⭐ throws 메서드안에서 예외를 발생시킨다. 예외처리 예제1)배열을 초과하는 예외를 발생시킨 뒤이를 try - catch 구문으로 처리했다.package _exception;/** * 4.24 * 예외처리 연습 */public class ArrayExceptionHandling { //main public static void mai.. 문자열 String 과 StringBuffer, 특별한 클래스 ⭐String 과 StringBuffer String 클래스 문자열을 표현하는데 사용된다. 💀불변 immutable 이다. 한 번 설정하면 변경할 수 없다. String 클래스를 통해 문자열을 저장하는 방식엔 2가지가 있다.리터럴 방식 String str1 = "Hello"; Heap 안에 존재하는 특정한 영역 String Constant Poll에 저장돼 재사용된다. new 연산자 사용 String str1 = new String("Hello"); Heap 메모리에 객체로서 올라간다. String 클래스의 특성으로 인해 문자열을 자주 변경한다면 메모리 낭비가 심해질 수 있다. 상수풀에 문자열을 저장한 뒤 이를 참조해서 재사용하면 메모리를 아낄 수 있다. ⭐StringBuffer String 클래스의.. 자바 API 문서, 보는 습관을 들이자 ⭐java API 문서 자바 개발자들은 자바 API를 이용한다. 이를 위해 API 목록과 사용법을 정리한 문서가 있다. APIApplication - 응용프로그램 Programming - 프로그래밍 Iterface - 인터페이스: 서로 연결해주는 접접(표준, 규약) ⭐ 자바를 통해 어떤 문제를 해결하려면 자신이 필요한 로직이 담긴 API 패키지를 찾아야 한다. 👍 한 사람이 모든 API를 외울 수는 없다. 그때 그때 문서에서 필요한 것을 찾아 쓰는 연습을 해야 한다. 많이 쓰는 자바 패키지 4가지java.lang - 기본 패키지와 클래스 java.util - 프로그램 제어, 데이터 저장 java.io - 주변기기와 파일 제어 java.net - 통신 👍API문서를 볼때의 실무팁계층구조를 먼저 보고필.. 오브젝트 Object 클래스, 자동으로 상속되는 최상위 클래스 ⭐오브젝트 클래스 Object Class Object 클래스는 모든 클래스의 최상위 클래스다. 자바는 Object 클래스를 제외하고 하나의 상속만을 제공한다. java.lang 패키지 안에 존재하며 import java.lang.*; 임포트 하지 않아도 자동으로 가져와준다. 이를 통해 많은 마더 메서드를 상속받아 쓸 수 있다. 대표적으로는 toString(), equals(), hashCode() 등이 있다. ⭐toString() 객체의 주소값을 호출 재정의: 모든 객체에 공통 메서드를 만들어주고 싶을때 ⭐ equals() 두 객체의 동등성 == 비교 재정의: 서로 다른 객체가 논리적으로 동등하도록 만들고 싶을때 ⭐ hashCode() 객체의 고유한 정수값을 만들어서 독립성을 보장 빠른 검색과 분류 저장.. 이전 1 ··· 9 10 11 12 13 14 15 ··· 18 다음