자바 쓰레드는 Runnable, Callable을 쓸 수 있다. 두개의 차이점이 궁금할 텐데 같이 한번 살펴보자. 간단한 예제로 빠르게 살펴봅니다. class ThreadRunner implements Runnable{ public void run() { System.out.println("Runnable"); } } class ThreadCaller implements Callable{ public String call() throws Exception{ return "Callable"; } } public class Test{ public static void main(String[] args) throws InturruptedException, ExecutionException{ ExecutorSe..
자바 file io 개발시 파일 경로를 적으면서 개발할 일이 있다. 할때 마다 영 헷갈린다.. 1. 순수 파일명만 있을시 프로젝트명 폴더가 경로이다. 본인 자리.. Path source=Paths.get("green.txt"); 이렇다고 하면 D:\\workspance\ocpjp가 프로젝트라고 하면 바로 여기에 green.txt가 있으면 된다. 즉, D:\\workspace\\ocpjp\\green.txt 이다. 2. /가 있을시는 디스크의 루트가 경로이다. 마치 리눅스 루트를 가려면 cd / 를 치듯이. Path source=Paths.get("/green.txt"); 라고 /가 파일명에 있으면 D:\\에 파일이 있으면 된다. 3. ./ 가 있을시 1번과 같다. 즉, 프로젝트명이 있는 폴더가 루트이다...
저런 것을 초기화 블럭이라고 합니다.초기화 블럭(initialization block) 클래스 초기화 블럭 : 클래스 변수의 복잡한 초기화에 사용된다. 클래스가 처음 로딩될 때 한번만 수행된다. 인스턴스 초기화 블럭 : 인스턴스 변수의 복잡한 초기화에 사용된다. 인스턴스가 생성될때 마다 수행된다. (생성자보다 먼저 수행된다.) class InitBlock{ static { /* 클래스 초기화 블럭 */ } { /* 인스턴스 초기화 블럭 */ } } 보통 이런 형태인데요. 인스턴스 변수의 초기화는 주로 생성자를 사용하기 때문에, 인스턴스 초기화 블럭은 잘 사용되지 않는다. 대신 클래스의 모든 생성자에서 공통적으로 수행되어져야 하는 코드가 있는 경우 생성자에 넣지 않고 인스턴스 초기화 블럭에 넣어 두면 코드..
class Caller{ private void init() { System.out.println("Initialized"); } private void start() { init(); System.out.println("Started"); } } public class Class50 { public static void main(String[] args) { Caller c = new Caller(); c.start(); c.init(); } } What is the result? A. An exception is thrown at runtime. B. Initialized Started Initialized C. Initialized Started D. Compilation fails. 정답: D 결..
import java.util.ArrayList; import java.util.List; class Patient{ String name; public Patient(String name) { this.name=name; } } public class ArrayList55 { public static void main(String[] args) { List ps=new ArrayList(); Patient p2=new Patient("Mike"); ps.add(p2); // insert code here System.out.println("f="+f); if(f>=0) { System.out.print("Mike Found"); } } } Which code fragment, when inserted ..
public class String60 { public static void main(String[] args) { System.out.println("Result A " + 0 + 1); System.out.println("Result B " + (1) + (2)); } } What is the result? A. Result A 01 Result B 3 B. Result A 1 Result B 12 C. Result A 1 Result B 3 D. Result A 01 Result B 12 정답: D 결과: Result A 01 Result B 12 설명: 앞부분이 문자열이니 뒤에 붙은것들은 문자열으로 보아 + 하면 문자열을 붙인다. 반면에 앞부분이 숫자면 + 기호를 사용하면 덧셈을 한다. 예를들면 ..
public class Static62 { int count; public static void displayMsg() { count++; System.out.println("Welcome "+"Visit Count: "+count); } public static void main(String[] args) { Static62.displayMsg(); Static62.displayMsg(); } } What is the result? A. Compilation fails at line n3 and line n4. B. Compilation fails at line n1 and line n2. C. Welcome Visit Count:1 Welcome Visit Count: 1 D. Welcome Visi..
1. Static 정리 Java에서 Static 키워드를 사용한다는 것은 메모리에 한번 할당되어 프로그램이 종료될 때 해제되는 것을 의미합니다. 이를 정확히 이해하기 위해서는 메모리 영역에 대한 이해가 필요합니다. [ Static의 메모리 ] 일반적으로 우리가 만든 Class는 Static 영역에 생성되고, new 연산을 통해 생성한 객체는 Heap영역에 생성됩니다. 객체의 생성시에 할당된 Heap영역의 메모리는 Garbage Collector를 통해 수시로 관리를 받습니다. 하지만 Static 키워드를 통해 Static 영역에 할당된 메모리는 모든 객체가 공유하는 메모리라는 장점을 지니지만, Garbage Collector의 관리 영역 밖에 존재하므로 Static을 자주 사용하면 프로그램의 종료시까지 ..
public class CheckingAccount{ public int amount; //line n1 } And given the following main method, located in another class: public class Class73 { public static void main(String[] args) { CheckingAccount acct = new CheckingAccount(); //line n2 } } Which three pieces of code, when inserted independently, set the value of amount to 100? A. At line n1 insert: public CheckingAccount(){ amount=100; }..
- Total
- Today
- Yesterday
- 포인터
- EC
- 이클립스
- webix
- 파싱
- KG
- 인포믹스
- XE
- C
- php
- 오라클
- 자바 smtp
- C언어
- 문자열
- 자바
- proc
- 프로씨
- JDBC
- ocjap
- xe애드온
- 파이썬
- esql
- Python
- ocajp
- xe addon
- 스크래핑
- 플러터
- MySQL
- XE3
- 라이믹스 모듈
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |