본문 바로가기

언어/java

(18)
... -여러개의 파라미터를 받고 싶을 때 public class Test{ public static void main(String[] args) { Test t= new Test (); t.test("test1","test2","test3"); } } class TestClass{ //String... 은 여러개의 파라미터를 받는다는 소리 public void test(String... strs) { System.out.println(strs[0]);// test1 System.out.println(strs[1]); // test2 } } 참고 https://haneulnoon.tistory.com/168
Serializable (직렬화) 란? //transient 는 직렬화의 예외 class TransientTest implements Serializable{ int a = 1; String b = "2"; private transient String tt ="이건 제외가 된다."; } 1. serialize 란? 직렬화는 기술이다. 이 기술은 데이터를 변환하는 기술이다. JVM의 시스템 내부에서 사용되는 Object 혹은 Data는 자바 외에서는 쓸 수 없다. 이 때 자바 외부에서 이러한 데이터를 사용할 수 있게끔 byte 형태로 데이터를 변환하는 기술이 직렬화(serialize) 이다. 즉, jvm 메모리에 있는 개게 데이터를 byte 형태로 변환하는 기술이다. 2. Deserialize 역직렬화이다. Object to Byte 인 기술이..
URL 객체 2. 생성자 - URL(String url_object) 문자열 url_object로 지정된 자원에 대한 URL 객체 생성 - URL(String protocol, String host, int port, String file) 프로토콜 식별자, 호스트 주소, 포트번호 ,파일 이름이 지정된 URL 객체 생성 3.메소드 content, file ,host , path ,port, protocol 에 대한 getter가 있다. 그 외에는 InputStream openStream() : URL 주소와 연결한 뒤 연결로부터 입력받을 수 있는 InputStream 객체를 리턴한다. URLConnection openConnection() : URL 주소의 원격 객체에 접속한 뒤 통신가능한 URLConnection ..
자바 스트림 collector
기본 함수형 인터페이스 람다와 같이 사용해서 더 유연한 코드를 만들기 위해 자바에선 기본 함수형 인터페이스를 제공한다. 종류는 크으게는 5개가 있다. Consumer = return 값 없이 T 타입 사용 - accpet() 를 씀 Supplier = 파라미터 없이 T return - get() 을 씀 Function = A를 B로 매핑 - apply() 를 씀 function A를 받고 B로 리턴 ToIntFunction 같은 경우는 A타입을 받고 Int형으로 매핑 Operator = 연산 후 리턴 - 람다식을 받는다. predicate = 파라미터 받고 boolean 리턴 - test() 사용 이 인터페이스 내에 디폴트 메소드가 존재하는 경우도 있다. andThen() = A.andThen(B); A실행하고 실행한 값 리턴..
람다식 함수형 인터페이스일때만 적용 가능 함수형 인터페이스 = 추상 메소드를 하나 가지고 있는 인터페이스 람다식 자체가 구현 객체이기 때문에 구현객체타입 변수 = 람다식 으로 써야 한다. 식 예제 int method(int x, int y) (x,y) -> return x+y; (x,y) -> x+y; int method(int x) x-> return x x -> x void method() ()->{} 주의할 점 1.this this는 람다식의 내용을 가지고 있는 클래스의 참조이다. 예시 class somethig{ int x =0; LamdaClass lc = (){ this.x } } this 는 Something을 가리킨다. LamdaCalss를 가리키는게 아니다. 2.익명클래스의 특성 람다가 있을 시..
데몬 스레드 데몬 프로세스 : 백그라운드 프로세스 라 생각하면 쉬움 메인 스레드 보조 역할을 하는 스레드 ex)자동저장기능 , GC, 동영상 플레이어의 재생기능
멀티 스레드 1. 간단한 스레드의 설명 프로세스는 운영체제로부터 작업을 할당받는 작업의 단위이고 스레드는 프로세스가 할당 받은 자원을 이용하는 실행의 단위이다. 스레드는 스레드 그룹에 속해있다. 작업(프로세스) 처리는 cpu가 한다. CPUtime은 프로세스를 처리하는 시간이다. 스케쥴링 하여 프로세스의 우선순위를 결정한다. 멀티코어로 멀티 프로세스를 할 수 있다. 멀티 프로세싱이 멀티 태스킹의 용어에 더 가깝다. 프로세스는 호출할 때마다 문맥교환이라는 오버헤드가 발생한다. 스레드로 처리를 하면 프로세스끼리 통신하는 비용보다 통신 비용이 적고, 문맥교환이 적게 발생해 더 효율적인 작업이 가능하다. 스레드는 굳이 앞뒤 순서가 필요 없는 일들이 있을 때 분리해 동시에 처리하고 싶을 때 사용한다. 이 멀티 스레드 2개 이..