동기화됨 차단 메서드의 특정 리소스에 대한 동기화를 수행하는 데 사용할 수 있는 코드 조각입니다. 동기화된 블록 모든 공유 리소스에 대한 개체를 잠그는 데 사용되며 동기화된 블록의 범위는 동기화된 방법보다 작습니다. . 구문 synchronized(object) { // block of code } 여기, 개체 동기화되는 개체에 대한 참조입니다. 동기화된 블록은 현재 스레드가 개체의 모니터에 성공적으로 들어간 후에만 개체의 멤버인 메서드에 대한 호출이 발생하도록 합니다. 예시 class TicketCou
장기 실행 동적 메모리를 많이 사용하는 Java 코드로 인해 메모리 부족 오류가 발생할 수 있습니다. 힙 공간의 메모리 부족으로 인해. 아래 프로그램에서 프로그램이 사용하는 Java 힙 여유 공간을 테스트할 수 있습니다. 힙 공간이 90% 이상 사용되는 경우 , 가비지 수집기가 명시적으로 호출됩니다. System.gc() 호출은 가비지 수집기가 완료될 때까지 호출 스레드를 차단합니다. 따라서 이 코드는 별도의 스레드에서 실행할 수 있습니다. 예시 public class GCTest { public void r
문자열 클래스를 사용하여 문자열을 나타낼 수 있습니다. , Java 프로그램의 모든 문자열 리터럴은 String 의 인스턴스로 구현됩니다. 수업. 문자열은 상수이며 해당 값은 변경할 수 없습니다(불변). 한 번 생성되었습니다. 아래 프로그램에서 최대 발생 문자를 인쇄할 수 있습니다. 주어진 문자열의. 예 public class MaxOccuredCharacterTest { public static void main(String[] args) { String str1 =
JDialog 대화 상자 의 하위 클래스입니다. 클래스이며 최소화 를 유지하지 않습니다. 및 최대화 창의 오른쪽 상단 모서리에 있는 버튼. 대화 상자에는 모달 의 두 가지 유형이 있습니다. 및 비모다 엘. 대화 상자의 기본 레이아웃은 BorderLayout입니다. 아래 프로그램에서 AlphaContainer 를 사용자 정의하여 투명한 JDialog를 구현할 수 있습니다. 클래스를 만들고 paintComponent() 재정의 방법. 예시 import java.awt.*; import javax.swing.*; public clas
Thread 개체의 run() 메서드 직접 호출 별도의 스레드를 시작하지 않습니다. 현재 스레드 내에서 실행할 수 있습니다. Runnable.run을 실행하려면 별도의 스레드 내에서 다음 중 하나를 수행하십시오. 실행 가능을 사용하여 스레드 구성 개체 및 호출 start() 스레드의 메서드입니다. Thread 개체의 하위 클래스를 정의하고 run() 의 정의를 재정의합니다. 방법. 그런 다음 이 하위 클래스의 인스턴스를 구성하고 start()를 호출합니다. 해당 인스턴스에서 직접 메소드를 사용합니다. 예시 public clas
JComboBox JComponent의 하위 클래스입니다. 클래스이며 텍스트 필드 의 조합입니다. 및 드롭다운 목록 사용자가 값을 선택할 수 있는 항목 . JComboBox는 ActionListener, ChangeListener,를 생성할 수 있습니다. 및 ItemListener 사용자가 콤보 상자에서 작업할 때 인터페이스입니다. 자동 완성 JComboBox를 구현할 수 있습니다. 사용자가 콤보 상자의 사용자 지정(AutoCompleteComboBox)을 사용하여 키보드에서 입력 값을 입력할 때 ) JComboBox 확장 수업.
데몬 스레드 일반적으로 사용자 스레드에 대한 서비스를 수행하는 데 사용됩니다. main() 메서드 애플리케이션 스레드의 사용자 스레드(데몬이 아닌 스레드) . JVM 모든 사용자 스레드(데몬 아님)가 아니면 종료되지 않습니다. 종료합니다. 사용자 스레드에 의해 생성된 스레드를 명시적으로 지정할 수 있습니다. setDaemon(true)을 호출하여 데몬 스레드가 됩니다. . isDaemon() 메서드를 사용하여 스레드가 데몬 스레드인지 확인하려면 . 예시 public class UserDaemonThreadTest extends T
toString() 메소드는 객체 의 중요한 메소드입니다. 클래스이며 객체의 문자열 또는 텍스트 표현을 반환하는 데 사용할 수 있습니다. 객체 클래스의 toString() 메서드는 지정된 개체의 클래스 이름으로 문자열을 반환하고 뒤에 @ 기호 및 해시코드 개체(java.lang.String;@36f72f09 ) toString()을 사용할 수 있습니다. 방법을 사용하여 숫자의 문자열 표현도 얻을 수 있으며 문자열이 다른 변수에서 가져온 숫자로 구성된 경우 유용할 수 있습니다. 이 경우 숫자를 문자열로 변환하고 연결하여 결합되거나
스레드는 wait(), notify() 를 통해 서로 통신할 수 있습니다. 및 notifyAll() 자바의 메소드. 최종입니다. 객체 에 정의된 메소드 클래스이며 동기화된 내에서만 호출할 수 있습니다. 문맥. 대기() 메소드는 현재 스레드가 다른 스레드가 notify() 를 호출할 때까지 기다리게 합니다. 또는 notifyAll() 해당 객체에 대한 메소드. 알림() 단일 스레드를 깨우는 메소드 그것은 그 개체의 모니터에서 기다리고 있습니다. notifyAll() 모든 스레드를 깨우는 메소드 그 개체의 모니터를 기다리고 있는 것
아니요 , 생성자는 동기화할 수 없습니다. 자바에서. JVM은 주어진 시점에 하나의 스레드만 생성자 호출을 호출할 수 있도록 합니다. 그렇기 때문에 생성자를 동기화 및 로 선언할 필요가 없습니다. 불법입니다나는 자바에서. 그러나 동기화된 블록을 사용할 수 있습니다. 생성자 내부. 동기화된 키워드 생성자 앞에 컴파일러는 오류:수정자 동기화가 여기에서 허용되지 않음 . 예시 public class SynchronizedConstructorTest { // declaration of synchr
JPasswordField JTextField 의 하위 클래스입니다. JPasswordField에 입력된 각 문자는 echo 로 대체될 수 있습니다. 캐릭터. 이것은 암호에 대한 기밀 입력을 허용합니다. JPasswordField의 중요한 메소드는 getPassword(), getText(), getAccessibleContext()입니다. 등. 기본적으로 JPasswordField 내부에 임의의 숫자를 입력할 수 있습니다. DocumentFilter 클래스 를 구현하여 사용자가 입력한 숫자를 제한하려는 경우 replace() 를
아니요 , wait() 를 호출할 수 없습니다. 잠금을 획득하지 않는 방법 . Java에서는 잠금이 획득되면 wait() 메서드( 시간 초과 여부에 관계없이) 해당 개체에서. wait() 잠금을 획득하지 않고 메소드에서 java.lang.IllegalMonitorStateException을 던질 수 있습니다. . 예 public class ThreadStateTest extends Thread { public void run() { try {
사전 클래스는 추상 클래스입니다. 키/값을 나타내는 지도 처럼 페어링 및 작동 기존 클래스입니다. 자바에서. 사전 클래스에는 두 가지 중요한 메서드 Dictionary.keys()가 있습니다. 및 Dictionary.elements() t 열거로 모자를 반복할 수 있습니다. . Dictionary 클래스의 다른 중요한 메서드는 isEmpty()입니다. , get() , 제거() 및 크기() . 구문 public abstract class Dictionary<K,V> extends Object 예시 import ja
예 , 우리는무시할 수 있습니다. 시작() 스레드 메소드 자바의 클래스. super.start()를 호출해야 합니다. 새 스레드를 생성하고 run() 을 호출해야 하는 메소드 새로 생성된 스레드의 메서드입니다. run() 을 호출하면 start() 내에서 직접 메소드 메서드를 사용하면 새 스레드가 아닌 실제 스레드에서 일반 메서드로 실행할 수 있습니다. 예시 public class ThreadTest { public static void main(String[] args) { &nb
둘 다 개체 수준 잠금 및 클래스 수준 위치 k는 동기화 를 달성하는 데 사용됩니다. 다중 스레드 응용 프로그램의 메커니즘입니다. 객체 수준 잠금 자바의 모든 개체에는 고유한 잠금이 있습니다. . 스레드가 동기화된 방법 을 실행하려는 경우 주어진 개체에서 먼저 해당 개체의 잠금을 가져와야 합니다. 스레드가 잠금을 얻으면 해당 개체에서 동기화된 메서드를 실행할 수 있습니다. 메소드 실행이 완료되면 스레드가 자동으로 잠금을 해제합니다. 내부적으로 잠금 획득 및 해제는 JVM에서 처리합니다. . 객체 수준 잠금 비정적 메서드를 동기화하려
JList JComponent 의 하위 클래스입니다. 클래스이며 사용자가 선택할 수 있는 개체 목록을 표시하는 데 사용할 수 있습니다. 하나 이상의 항목 . JList는 ListSelectiionListener 를 생성할 수 있습니다. 인터페이스 및 추상 메서드 valueChanged()를 구현해야 합니다. DefaultListModel 클래스는 JList 컨트롤에 의해 표시되는 항목을 관리하는 데 사용할 수 있는 목록 모델의 간단한 구현을 제공합니다. addElement()를 사용하여 JList에 항목을 추가할 수 있습니다.
@Override 주석은 기본 Java 주석 중 하나이며 Java 1.5에 도입될 수 있습니다. 버전. @재정의 주석은 하위 클래스 메서드가 기본 클래스 메서드를 덮어쓰고 있음을 나타냅니다. . @Override 주석은 두 가지 이유로 유용할 수 있습니다. 주석이 있는 메서드가 실제로 아무 것도 재정의하지 않으면 컴파일러에서 경고를 추출합니다. 소스 코드의 가독성을 높일 수 있습니다. 구문 public @interface Override 예시 class BaseClass { public void disp
JTable 복잡한 데이터 구조를 표시하기 위한 JComponent 클래스의 하위 클래스입니다. JTable 구성 요소는 Model View Controller(MVC)를 따를 수 있습니다. 행과 열에 데이터를 표시하기 위한 디자인 패턴 . JTable은 TableModelListener, TableColumnModelListener, ListSelectionListener, CellEditorListener 를 생성할 수 있습니다. 및 RowSorterListener 인터페이스. 선택한 행을 제거할 수 있습니다. removeR
sleep() 메서드 정적 입니다. 스레드 메소드 현재 실행 중인 스레드를 실행 불가 상태 로 보낼 수 있습니다. 반면 wait() 메서드는 인스턴스 메서드이고 스레드 개체를 사용하여 호출하고 있으며 해당 개체에 대해서만 영향을 받습니다. 수면() 시간이 만료된 후 메서드 깨우기 또는 interrupt() 호출 메소드인 반면 wait() 시간 만료 후 메서드 깨우기 또는 notify() 호출 또는 notifyAll() 방법. 수면() 메소드가 잠금 또는 모니터링을 해제하지 않습니다. r 기다리는 동안 wait() 메서드
예 , 우리는 Java에서 run() 메소드를 동기화할 수 있지만 이 메소드는 단일 스레드에서만 실행되었기 때문에 필요하지 않습니다. 따라서 동기화 run()에는 필요하지 않습니다. 방법. 비정적 방법을 동기화하는 것이 좋습니다. 동시에 여러 스레드에 의해 호출되기 때문에 다른 클래스의. 예시 public class SynchronizeRunMethodTest implements Runnable { public synchronized void run() { System.