목록Java (256)
코드 그라데이션
TCP/IP ( ≒ 인터넷 프로토콜 스위트(Internet Protocol Suite) : 인터넷에서 데이터를 주고받기 위해 사용되는 프로토콜 - TCP (Transmission Control Protocol)와 IP (Internet Protocol)로 구성됨. IP는 패킷을 전송하는 역할을 하며, TCP는 전송 중인 데이터의 신뢰성을 보장하고 전송 속도를 조절하는 역할을 함. TCP/IP의 데이터 전송 과정 데이터를 패킷으로 분할한다. IP 프로토콜을 사용하여 각 패킷의 출발지와 목적지를 설정한다. 각 패킷이 도착할 때까지 전송될 경로를 결정한다. TCP 프로토콜을 사용하여 패킷 전송의 신뢰성을 보장하게 만든다. 전송된 패킷을 재조립하여 전체 데이터를 복원한다. - 인터넷에서 가장 널리 사용되는 프로..
call by Value 핵심 : "값이 넘어간다" 변화를 알고 싶으면 return int a = 5; 가 있고 xyz(int a) {} 메서드가 있다고 하자. main 메서드에서 xyz(a); 를 호출했을 때, ... xyz의 매개변수로 값인 5가 넘어간다. public class Sample { static int xyz(int a) { a = 10; return a; } public static void main(String[] args) { int a = 5; xyz(a); System.out.println(a); // 5가 출력됨!!!!! } } 이 때 바깥에 있는 int a는 변화가 있을까 없을까? 답 : 없다 왜? 값만 넘어갔기 때문에 - 매개변수로 넘어간 a를 가공한다고 해도 마찬가지. -..
정답코드 1 /* - 5명이 기부를 1000원씩 함. - 총 성금이 500,000원이 되면 프로그램을 종료함. - 그런데 이제 문제는, 줄 한 번 서면 정보를 정확하게 알 수가 없어서 - 프로그램 종료 시에는 항상 504,000원이 출력될 것. */ class Account { int money = 0; synchronized void sendMoney() { // 돈내기 메서드 money += 1000; } } class Contributor extends Thread { // 얘가 각자 송금을 할 거니까 thread를 받는다. // 또한 Account 실객체를 하나 만들어서 돌려쓸 거니까, Account는 보유하고 있어야. // Account도 main문에서 받아온 거 하나를 넣어줄거란 말이죠. Ac..
예제코드 class F{ void xxxx() { } } public class Main { public static void main(String[] args) { // 여기 만약에 F f = new F(); F f1 = new F(); F f2 = f1; // 하나의 물리적 주소를 두 개가 동시에 바라보게 되는 것. if(f == f1) { System.out.println("f == f1"); // 출력 안 됨 객체가 달라 } if(f.equals(f1)) { System.out.println("f.equals(f1)"); // 출력 안 됨. } if(f1 == f2) { // f1과 f2는 참조변수가 가지고 있는 값이 같다. System.out.println("f1 == f2"); } // f와 ..
질문 Q. Abstract 메서드가 있다. 그럼 이 클래스는 반드시 Abstract여야 할까요? A. 그렇다. Q. Abstract 클래스는 반드시 Abstract 메서드를 가지고 있어야 할까요? A. 꼭 그렇지 않아도 된다.
동등성 비교 어떤 상황에서 동등성 비교가 필요할 수밖에 없을까? 일치여부는 == 동일성 비교로 그냥 정리할 수 있는 것 아닌가? 일단 == 비교는 물리적으로 위치가 완전히 똑같은지를 비교하는 것. new가 두 번 되었으면 이 두개는 절대로 == 일 수가 없다. => 객체가 매번 생성되는 상황에서는 객체간에 == 비교를 하면 항상 실패한다는 이야기. ex. 데이터베이스 어느날 이 주문을 조회할 일이 필요해졌다고 치면, 데이터베이스의 row를 읽어서 애플리케이션으로 가져와야죠. 가져오는 역할을 하는 중간단계의 누군가가 있을 것인데, 얘가 하는 역할이 row를 읽어서 row와 매핑될 수 있게 new order를 만든다! => 이 말은, 똑같은 정보라고 하더라도 읽을 때마다 매번 new가 필요하다는 뜻. 어쩔 ..
함수를 볼 때는 인자로 들어오는 건 사용자가 나에게 주는 거고, 리턴하는 건 내가 사용자에게 넘기는 것이다. 물 배열을 그냥 30개로 만들었다면, Water02[] w = new Water02[30]; int maxW = 0; Water02[] wArray = new Water02[10]; for (int j = 0; j
예시코드 class A{ int a; } class B extends A{ int b; } class C extends A{ int c; } class D extends A{ int d; } public class ClassCastingTest1 { public static void main(String[] args) { A a = new B(); //업캐스팅 B b = (B)a; // 다운캐스팅 B[] listB = new B[10]; C[] listC = new C[10]; D[] listD = new D[10]; A[] listA = new A[10]; listA[0] = new C(); listA[1] = new D(); listA[2] = new B(); // listA[2].b = 10; //..