본문 바로가기

Study96

Sep.20.Wed.2023 Java 수업 18일차 Network / TCP & UDP / Server Socket TCP와 UDP 네트워크 통신 프로토콜 중 두 가지 주요한 프로토콜로 컴퓨터 간 데이터 통신을 가능하게 한다. public class InetAddressMain { public static void main(String[] args) { InetAddressMain iam = new InetAddressMain(); // iam.InetExam(); iam.InetSample(); } public void InetExam() { try { // 호스트 이름 이용해서 객체 생성 InetAddress address = InetAddress.getByName("www.google.com"); // IP 주소 출력 System.out.println("Hos Name : " + address.getHostNam.. 2023. 9. 20.
Sep.20.Wed.2023 Java 수업 18일차 이진트리 중위순회 / DFS와 BFS DFS, 깊이우선탐색 (Depth-First Search) -> 전위, 중위, 후위 순회 그래프에서 깊이를 우선으로 탐색하는 알고리즘으로 시작 노드에서 출발하여 한 갈래로 끝까지 탐색한 후 다음 갈래로 이동한다. 스택 또는 재귀함수를 사용하여 구현하며 더 이상 진행할 갈래가 없을 때 역추적하여 다른 갈래로 이동한다. 깊이가 깊어질수록 스택에 저장되는 노드가 많아질 수 있으니 재귀의 최대 깊이에 주의해야 한다. public class BinaryTree { TreeNode root; public BinaryTree() { this.root = null; } // insert 메서드와 insertRec 메서드는 이진 트리에 새로운 노드를 삽입하는 데 사용된다. public void insert(int dat.. 2023. 9. 20.
Sep.19.Tue.2023 Java 수업 17일차 Synchronized / Graph Synchronized란? 다중 스레드 환경에서 동시 접근으로부터 데이터의 일관성을 보호하기 위해 사용되는 키워드이다. 하나의 스레드가 특정 블록 또는 메서드를 실행하는 동안 다른 스레드가 동일한 블록 또는 메서드에 동시에 접근하지 못하도록 하는데, 이는 스레드 간의 경쟁 조건과 데이터 불일치 문제를 방지하는 데 도움이 된다. - 메서드 동기화 : 메서드 전체를 동기화하는 경우, 해당 메서드의 실행 중에는 다른 스레드가 해당 메서드에 접근할 수 없다. ex) public synchronized void syncMethod() { // 동기화된 메서드 내용 } - 블록 동기화 : 특정 블록을 동기화하는 경우 블록 내부의 코드만 가능 ex) public void someMethod () { // 비동기코드 .. 2023. 9. 19.
Sep.19.Tue.2023 Java 수업 17일차 Stack & Queue & Dequeue 스택(Stack)_큐(Queue)_덱(Deque) 데이터를 저장하고 관리하는 자료구조 각각의 데이터를 다양한 방식으로 저장하고 접근할 수 있도록 설계되어 있고, 다양한 알고리즘과 문제 해결에 사용된다. 스택(Stack)이란? 데이터를 후입선출(LIFO Last-In-First-Out)의 원칙에 따라 저장하는 자료구조 가장 최근에 삽입한 데이터가 가장 먼저 제거된다. - stack 값 추가 : stack.push(); - stack 값 삭제 : stack.pop(); - stack 전체 값 제거, 초기화 : stack.clear(); - stack 가장 상단의 값 (가장 마지막에 넣은 값) 출력 : stack.peek(); - stack의 크기 출력 : stack.size(); - stack이 비어있는지 .. 2023. 9. 19.
728x90
반응형