목록분류 전체보기 (174)
The Debugging Chronicles : "코드의 미학"
프로세스와 스레드 - 동시에 두가지 이상의 작업을 처리하기 위한 도구들을 말한다. 프로그램 : 파일이 존재하지만 아직 메모리에 올라가 있지 않은 상내를 말한다. (실행되지 않은 코드의 집합) 프로세스 : 프로그램을 실행하는 순간 메모리에 올라가고 동작하게 되는 상태를 말한다. (프로그램의 한 단위) 프로세스는 독립적으로 메모리에 등록되므로 여러 개의 프로그램을 동시에 실행할 수 있게 된다. 하나의 프로세스는 적어도 한 개의 스레드를 지니게 된다. 스레드 : 프로세스 내부에 존재하면서 실행 흐름을 나타내느 것을 말한다. (프로그램 내에서 동작하는 작업 단위)스레드의 사용 - 스레드를 생성하는 법 1. Thread 클래스를 상속하여 run() 메서드 구현 · 클래스를 실행시키기 위해선 start() 메서..
package class01;import java.util.ArrayList;// 컬력션 프레임워크// 배열리스트public class Test01 { public static void main(String[] args) { // 배열[] : 개수가 정해져 있음, 관련성, 자료형 // 배열리스트 : 개수 무제한 Generic// ArrayList al = new ArrayList(); ArrayList al = new ArrayList();// al.add(3.14);// al.add("apple");// al.add('A');// al.add(10); al.add(100); al.add(20); al.add(1,123); // 오버로딩 System.out.println(al..
자바의 추상화 자바 웹 개발을 하다보면 JAVA가 아닌 언어를 사용할 확률이 점점 높아집니다.JAVA를 기반으로한 회사마다의 새로운 언어 or 프레임워크가 많다 그 회사에서만 사용하는 언어 혹은 기술이 있다만약 JAVA만 공부하면, 다른 언어를 만났을 떄 ….. 어 안배워서 모른다,… 라는 이야기가 나오면 개발자 인생 끝…. 세상 모든 JAVA기반 언어들이 공통으로 하는 모토 혹은 기준 같은게 있는데, 그게 바로 “추상화”개념을 반드시 가지고 있다는 점 그래서 웹 개발 책이나 인강을 보면 잘안나올 수도 있다, 당장 안쓰긴함 >>> 세상 모든 언어들이 이 “추상화”개념을 바탕으로 뭔가 한다는 점…. ——————————————————————————— 추상화의 역사 네모 클래스, 원 클래스, 세모 클래스가..
06-1 오라클 함수함수란?x와 y 변수가 존재하고 x 값이 변하면 그 변화에 따라 어떤 연산 또는 가공을 거쳐 y값도 함께 변할 때 이 y를 함수라고 한다 오라클 함수에서는 특정 결과 데이터를 얻기 위해 어떤 값이나 데이터를 입력하는데 그 값에 따라 고공 또는 여산의 과정을 거쳐 결과 값이 나온다. 즉 오라클 함수는 특정한 결과 값을 얻기 위해 데이터를 입력할 수 있는 특수 명령어를 의미 오라클 함수의 종류내장 함수 built-in-function사용자 정의 함수 user-defined -function 내장함수의 종류입력 방식에 따라 데이터 처리에 사용하는 행이 나뉜다. 데이터가 한 행씩 입력되고 입력된 한 행당 결과가 하나씩 나오는 함수를 단일행 함수 single - row function 여러행이..
package class05;class Shape { String name; double area; String color; Shape(String name) { this(name,"검정"); } Shape(String name,String color) { this.name=name; this.color=color; this.area=0.0; } void draw() { System.out.println(this.color+"색 "+this.name+"모양 넓이 : "+this.area); } void setArea() { System.out.println("Shape에서 호출한 setArea()"); }}class Circle extends Shape { int radius; static f..
package class02;// [상속]// 부모 클래스(상위 클래스)의 코드를// 자식 클래스(하위 클래스)가 전부 '재사용' 할 수 있다.// "유지보수 용이성 극대화"// 코드를 잘게잘게 잘라야함 == 모듈화(컴포넌트화,함수화)// --->> 코드 재사용성 증가// 오류 발견시 수정을 적게함// --->> 오류의 파급효과 절감// 결과를 다양하게 추출할수있음// 개발시간 단축,개발비용 축소class Point { int x; int y; Point(int x,int y){ this.x=x; this.y=y; System.out.println("부모 생성자 호출됨"); } void printInfo() { System.out.println("("+this.x+","+this.y+")");..
package class01;//원// 반지름// 넓이 = 반지름*반지름*PI(3.14)class Circle{ String name; int radius; // 반지름 double area; // 넓이 // final == 변수값 고정 == 상수화 static final double PI = 3.14; //원주율 // 멤버변수 필드 속성 attribute property // 멤버변수 초기화 // 생성자에서 초기화 // static 클래스변수 공유자원 // 클래스에서 초기화 //객체 c1의 값 을 변경해도, // 객체 c2의 값에 영향 xxx ==> "객체와 무관하게" static // 주인이 객체 x 클래스 o Circle (String name , int radius){// this.PI = ..
package class01;class Product { int num; //PK String name; int cnt; int price; //생성자 오버로딩 Product(int num, String name){ this.num = num; // 시스템에서 부여하는 값 ->외부에서 가져와야함 this.name = name; //상품명 this.cnt = 0; //재고; this.price = 0; //가격; } Product(int num, String name,int cnt, int price){ this.num = num; // 시스템에서 부여하는 값 ->외부에서 가져와야함 this.name = name; //상품명 this.cnt = cnt; //재고; this.price =..
package class06;// 특정 멤버변수의 값을 반드시 넣도록 "강제"하고 싶을 때// "강제" : 개발할 떄 강제하다는 좋은것 , 지정하는 것, 오더를 내리는 것.// 실수를 줄여준다// 멤버변수의 값을 '강제'하고 싶을 때는 // == 생성자를 선언(정의) 하면된다class Pokemon{ String name; int level; int exp; Pokemon(String name){ // 강제할 항목 // this 생략하지 않는다. this.name=name; // 멤버 변수 // 외부 변수 // 외부에서 받아온 name 값을 멤버 변수 name에 저장 this.level = 5; this.exp = 0; // 모든 멤버 변수 생성자 안에서 초기화를 직접 작성하는 것을..
참조에 의한 호출 call By referencepackage class06;public class Test02 { public static void test(int[] datas) { datas[0]=0; } public static void main(String[] args) { // new 연산자 : 개발자 메모리 영역(heap)에 공간을 만들어줘. int[] datas = new int[3]; for(int i =1; i Call by Value (값에 의한 호출)Java는 기본적으로 'Call by Value' 방식을 사용하고 있다.메서드로 변수를 전달할 때 값이 복사되어 전달되는 방식을 의미한다. 메서드에 전달된 값은 인자를 복사해서 보낸 것이므로 메서드 내에서 변경..