목록Computer Science (46)
Code&Data Insights
What is Pointer? => A pointer is a variable whose value is the address of another variable. Like any variable or constant, you must declare a pointer before you can work with it. The general form of a pointer variable declaration is − ( 포인터란 다른 변수의 주소를 가진 변수이다. 다른 변수나 상수와 같이, 반드시 포인터를 사용하기 전에 선언되어야 한다. ) type *var-name; * the pointer's base type int *ip; // pointer to an intege..
[ Exception ]- Exception(예외)란 프로그램이 핸들링 할 수 있는 오류를 말한다. - When something does not go as planned (프로그램이 원하는 방향으로 작동하지 않을때 사용) - Exception(예외처리) 하는 방법 : - 오류, 그 중 런타임 에러는 Error와 Exception으로 나뉜다. => 오류의 경우 컴파일에러/런타임에러/논리적에러로 나뉜다. 예외처리를 할 수 있는 에러는 런타임에러, 그 중에서 exception만이 가능하다. => Error의 경우에는 예외처리가 불가능하다. => (ex) OutOfMemory와 같은 심각한 에러는 예외처리로 다룰 수 없다 - Exception의 종류 : checked / unchecked excepti..
분명 자바 수업인데, 교수님은 자꾸 C++이랑 비교하면서 설명해서 헷갈려 돌아버리는 줄 알았다 ㅋㅋㅋ 저번 교수님은 걍 간단하게 상속이랑 access modifier 표기만 짚고 넘어갔는데 이 교수님은 아예 과제도 class diagram 그려오라 그러고 aggregation, compostion 등등 첨 듣는 개념... 근데 어차피 프로그래밍 언어를 막론하고, UML은 소프트웨어 설계를 하는데 필요하므로 이참에 정리해보려고 한다. What is UML? - Unified Modeling Language - 소프트웨어 시스템을 설계하는 standardized modeling language [ UML Class Diagrams ] - Basic UML Class Diagram은 Classes / Comp..
[ Static Variables & Static Methods ] 계속 헷갈렸던 Static, What does "Static" mean? => 자바에서는 객체를 필요할 때마다 메모리에 올려 사용한다. Static은 프로그램의 객체 생성 이전 JVM에 의해 클래스가 load되는 순간에 자동으로 메모리에 올라간다. => 객체 생성 이전에 이미 로딩되는 메모리이기 때문에, non-static 영역(객체 영역)으로는 접근이 불가능하다. Variables(변수)에는 instance variables(iv)과 class variables(cv)- static 이 존재한다. => instance variables은 개별 속성(객체마다 다르게 가..
오늘 강의 듣는 중에 레거시 시스템이라는 말을 처음 들었다. 레거시 시스템이란 뭘까?? * What is a Legacy System? - 레거시 시스템이란?? => 레거시 시스템이란 아직도 쓰이고 있는 구식의 소프트웨어/하드웨어를 말한다. 그 시스템은 여전히 설계된 대로의 기능을 충족시킬수 있지만, 어떠한 성장도 용납되지 않는다. 구식의(오래된) 기술의 레거시 시스템은 현재 새로운 시스템과 상호작용 할 수 도 없다. * Problems caused by legacy systems - 레거시 시스템으로 인해 발생하는 문제들 1. Maintenance is costly (and futile) -> 유지비용이 많이 든다. 데이터 사일로로 인한 불필요한 저장공간이 발생되어, 이에 따른 비용이 부가적인 비용이 ..
[ Java Programming ] StringBuffer class & StringBuilder class - java.lang.StringBuffer extends (or inherits from) Object class - String 대신 String buffer class를 사용하는 이유? => 문자열 처리는 보통 String이 하지만, 기존 문자열에서 추가/삭제를 하는 경우 기존 메모리에 추가되는 것이 아니라 새로운 메모리에 더해진 문자열의 영역을 잡고 주소가 생기기 때문에 이러한 추가/삭제가 빈번한 경우 메모리에 부담이 커진다. => String(불변의 속성) vs StringBuffer(가변의 속성) - append() method의 경우에는 모든..
Interface와 Abstract의 차이점 [ The difference between Interface and Abstract Class ] (1) Accessibility of Data Members 인터페이스에서는 상수만 선언가능 , 반면, 추상클래스는 concrete class와 같이 fields 선언 가능. (2) Keywords 인터페이스에서는 implements를 쓰지만, 추상클래스에서는 extends를 사용한다. ( 하지만, 인터페이스가 다른 인터페이스(one or more)를 상속할 경우에는 extends 키워드를 사용한다. ) (3) Access Modifier 인터페이스는 fields, methods 모두 다 public! 추상클래스는 public,protected methods를 ..
[ Linked List ] - 자바의 Collection Framework에 포함. - This class is an implementation of the LinkedList data structure which is a linear data structure where the elements are not stored in contiguous locations and every element is a separate object with a data part and address part. - 각 element들(node)은 pointer와 address로 연결되어져 있다. - 각 element들의 위치 파악이 어려워 불연속적이다. ( 접근성 ↓) [ Linked List vs ArrayList ]..