TCP/IP 인터넷이나 네트워크를 통하여 컴퓨터들이 연결되기 위해 상호 연결 방법을 정의한 프로토콜 프로토콜 : 약속이나 규약 응용계층 전달계층(TCP, UDP) 포트 인터넷 계층(IP) 아이피 네트워크 계층 물리계층 Port : 항구 80 포트 -> 인터넷 -> 인터넷 데이터가 이리로 모입니다. TCP : 연결 지향형 - 카카오톡 장점 : 연결 상황 확실 단점 : UDP보다 느리다. UDP : 비연결 지향형 - 토렌트 장점 : 빠르다. 단점 : 데이터 손실이나 문제가 있을 수 있다. 소켓 통신을 연결시키기 위한 끝 점 TCP 소켓 / UDP 소켓이 있습니다. java.net 패키지를 사용 www.naver.com -> 도메인 www.naver.com -> 223.130.195.200 사용예제 패키지
웹개발 측면에선 Spring 에서 자동으로 구현하기 때문에 깊이 들어가지 않으나, Java 에선 분명히 비중있고, 깊이 관여하는 부분이다. 프로세스 실행 프로그램 쓰레드 프로세스 안에 실행하는 실행 단위 기본적인 메커니즘은 처리 속도 향상을 위해 사용한다 Java에서 여태 작성했던 것에 쓰레드를 신경쓰지 않았다면, 단일 쓰레드로 쓰레드 1개로 작동했던 것이다. 그러므로 해당 프로그램은 멀티코어 지원을 하지 않는 경우를 생각 하면 된다. 쓰레드는 양날의 검 장점 : 처리 속도가 향상 된다. 단점 : 필요 이상의 쓰레드의 수는 메모리, CPU 의 자원 소모가 많아진다. 이해를 돕자면, 쓰레드 - 종업원 종업원 여러명 두면 가게를 더 빠르게 운영 되어, 돈을 더 많이 벌 수 있다. 단, 종업원이 일을 잘한다는..
Split 문자열 메소드 파일의 구분되어 있는 걸, 바로 String 배열로 구분해 대입 해준다. 사용예제 package Day30; public class SplitTest { public static void main(String[] args) { // TODO Auto-generated method stub String a = "abc def xor"; String[] temp = a.split(" "); for(int i = 0; i
Java로 시간을 출력할 수 있는 메소드가 있다. 단순하니, 코드 자체를 보면 이해가 쉽다. 더이상 자세한 설명은 생략한다. package Day30; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; public class EXTime { public static void main(String[] args) { // TODO Auto-generated method stub LocalDate d = LocalDate.now(); LocalTime t = LocalTime.now(); LocalDateTime dt = LocalDateTime.now(); System.out.println(LocalD..
Try, Catch throws => Exception 처리프로그램이 동작할 때 예외 상황 try { 실행할 명령문 }catch(에러 관련 Exception) { // 예외 상황에 대한 처리 }catch(에러관련 Exception) { // 예외 상황에 대한 처리 }finally{ 무조건 마지막 실행 } Exception -> 최상위 부모, 모든 예외 처리가 가능하다. 사용예제 1 package Day30; import java.io.FileReader; public class ExceptionTest1 { public static void main(String[] args) { // TODO Auto-generated method stub FileReader fr; try { fr = new FileR..
package Day27; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; public class ListTest { public static void main(String[] args) { // TODO Auto-generated method stub String[] name = {"kim","lee","park","jung","oh"}; ArrayList lname = new ArrayList(Arrays.asList(name)); // String 이 참조 자료형이여서 arraylist 가 가능한것. lname.add("ha"); System.out.println("\"ha\" 추가된 후의 값 : "..
제네릭 객체가 생성될 때 클래스 안에 있는 자료형이 선택 됩니다. 단, 참조자료형만 가능. - 기본자료형 X (class 만 된다.) int > integer double -> Double (대문자를 써야한다) 사용 예제 package Day27; class Box{ T vol; void setVolume(T v) { vol = v; } T getVolume() { return vol; } } public class GenericTest { public static void main(String[] args) { // TODO Auto-generated method stub Box ibox = new Box(); ibox.setVolume(200); //ibox.setVolume(23.3); // 에러난..
final 값을 변경할 수 없다. public [final] int max = 20; max = 30; (에러) 변수/ 메소드/ 클래스 에 사용가능하다 변수 final - 값을 변경 할 수 없다. 메소드 final - 오버라이딩 일때 사용 불가능 클래스 final - 상속 불가 사용예시 package Day25; final class T1 { } class T2 { //extends T1 - T1 이 final 이라 상속이 안된다. } class T3 { final void abc() { } } class T4 extends T3 { //void abc() final 이라 재정의는 안된다. } public class FinalTest { public static void main(String[] args..
추상화란 ? 말을 추상적으로 이야기 한다. 현실적이지 않은 것을 현실적인 것 마냥 말한다. 실체화는 아니고, 뭔가 구상이 있는 것을 추상화라고 합니다. 추상화가 나온 이유? - 메소드 오버라이딩 메소드와 연관 void abc() { System.out.println("a"); } void abc(); 추상화 되어 있는 메소드가 있다? X 추상화된 메소드를 가지고 있다는 것은 객체화 X 추상화 된 메소드를 가질 수 있는 것 class 는 불가 abstract class interface ! 중요 추상화가 있으면 필수적으로 상속을 해야 합니다. class. abstract class - 추상화 클래스 멤버 변수 or 일반 메소드를 가질 수 있습니다. abstract class A { abstract void..
오버라이딩 부모가 정의한 함수를 자식이 재정의 하는 것을 말합니다. 부모 클래스가 abc = 1 이라는 메소드가 있다면 부모 클래스에 자식클래스로 할당 한다면 같은 이름 메소드인 경우 재정의 된다. 그 이후 해당 메소드를 출력하면 자식 클래스로 재정의된 출력 결과를 얻을 수 있다. 사용예시 class A{ void abc() { System.out.print("ABC"); } } class B extends A{ void abc() { System.out.println("DEF"); } } 출력 결과 B b = new B(); b.abc(); // DEF 출력 A a = new B(); // A 클래스에 자식 B 클래스 객체 할당 ( B 자식 클래스로 재정의 됨) a.abc(); // DEF 출력 // ..