Programing Language 28

TypeScript 자료형

1. Primitive type : string, number, boolean 숫자는 모두 number으로 사용 정수, 소수 간 연산 시에도 같은 자료형이기 때문에 형변환 필요 없음 primitive type도 객체로 취급하나 number는 string으로 자동 형변환 되지 않음 boolean은 스트링과 결합시 자동형 변환됨 number + string 불가 number + boolean 불가 string + boolean 가능 const t = { a1 : "1", a2 : 1, a3 : 0.1, a4 : true } console.log(t.a2+t.a3) // 1.1 console.log(t.a1+t.a2.toString()) // "11" console.log(t.a1+t.a3.toString()..

Kotlin Null 처리 방식 정리

1. 기본적인 Null 변수 fun main() { val a:Int; // a = null; -> null 할당 불가 val b:Int?; b = null; } 코틀린에서는 변수 할당 시에 일반적인 변수 선언으로는 null을 할당할 수 없다. "Type?" 형태로 뒤에 '?'를 추가해야지만 null을 할당 받을 수 있는 변수가 된다. null이 가능한 타입은 기존의 코틀린 기본 타입과 다른 타입으로 구분된다. 2. 함수에서의 null fun main() { val a = null; //add(a);

JAVA Concurrent 프로그래밍 (Completable Future)

1. 기본적인 쓰레드 예시 System.out.println(Thread.currentThread().getName()); Thread a = new Thread(()-> { System.out.println(Thread.currentThread().getName()); try { Thread.sleep(1000l); } catch (InterruptedException e) { return; } }); a.start(); // my code // a.join() or a.interrupt() // my code start : 시작 join : 해당 쓰레드가 끝날때 까지 기다림 interrupt: 해당 쓰레드를 interrupt 하여 catch 블락에 접근하도록 유도 => 쓰레드 관련하여 모든 코드 작성..

R ggplot을 interaction plot 으로 변경하는 방법(ggiraph, htmltools 활용)

R ggplot을 ggiraph을 사용하여 html과 java script를 활용한 interaction plot. html 리소스 만들기 - 웹에서 java script 통해 상호작용이 가능한 plot으로 변경 1. 데이터 준비 ggplot에서 기존에 사용하던 데이터 컬럼 구성(위의 데이터는 시계열 데이터) 추후에 각 선과 점에 마우스를 올렸을때 동작하는 tooltip과 interaction을 위해서 tooltip용 컬럼을 추가해준다. 2. 기본 ggplot grid 생성 library(ggplot2) library(ggthemes) library(ggiraph) gg

Collection과 람다식을 활용한 데이터 처리 정리 - 1

# 다중 조건 정렬 1. 데이터 입력 List list = new ArrayList(); Student s1 = new Student(11001244, "아무개", "서울시 금천구"); Student s2 = new Student(25109435, "김김김", "서울시 중랑구"); Student s3 = new Student(11005338, "사이다", "서울시 은평구"); list.add(s1); list.add(s2); list.add(s3); 2. 모두 오름차순 정렬 list.sort(Comparator.comparing(Student::getNum).thenComparing(Student::getName) .thenComparing(Student::getAddress)); 3. 이름만 내림차순 ..

JAVA Thread 구현하기

Extends Thread 기본적인 방법 Thread 객체를 상속받아 Run메서드를 오버라이딩 하여 사용 상속받은 객체 인스턴스를 생성하고 start 메서드를 실행하면 Run 메서드의 내용이 실행됨 Thread를 상속 받아야 하기 때문에 다른 클래스를 상속 받아서 사용할 수 없음 public class ExThread1 extends Thread{ @Override public void run() { try { Thread.sleep(1000); System.out.println(Thread.currentThread().getName()); } catch (InterruptedException e) { e.printStackTrace(); } } } public class Main { public sta..

Enumeration과 Iterator

JAVA Collection 에 저장된 데이터에 접근하는 방법 Enumeration Java 1.2 부터 소개된 초기 Collection을 지원 Snapshot 방식 - Enumeration을 사용시 데이터에 직접 접근하는것이 아닌 접근하려는 Collection을 복사하여 사용 - 다른 사용자가 Collection의 원본데이터를 수정 할 시에 해당 내용을 인지 할 수 없음 Vector 등 초기 객체만 지원 public class Main { public static void main(String args[]) { Vector v = new Vector(); v.add(1); v.add(2); Enumeration e = v.elements(); while(e.hasMoreElements()) { Syst..

JAVA Exception 처리

자바 프로그램상 예기치 않은 상황에서 문제가 발생할 수 있다. 이러한 상황에서 예외처리를 통해 문제를 해결한다. Exception : 자바가 처리할 수 있는 상황 - Checked Exception : 컴파일 시점에서 처리할 수 있는 예외 상황 Ex) 파일 입출력 , 커넥션 연결 등 - Unchecked Exception : 런타임 상황에서 확인 할 수 있는 예외 상황 Ex) Nullpoint, divided 0 , arraybound 등 Error : 자바가 처리할 수 없는 심각한 오류 (Server error , Out of Memory) Try ~ Catch 블록 public class Main { public static void main(String args[]) { try { //somethi..

인터페이스와 디폴트, 스태틱 메서드

JAVA 8 이후 부터 인터페이스에 default 한정자를 통해서 메서드를 직접 구현할 수 있다. 인터페이스에 구현된 메서드들은 해당 인터페이스를 구현한 클래스에서 공통적으로 사용 가능하다. - 인터페이스 public interface TestInterface { //구현해야될 메서드 String hi(); /** * (@impspec 대문자 변환) */ //default 메서드 default void uppperString() { //hi()에 정상적인 값이 들어올지 알수 없음 System.out.println(hi().toUpperCase()); } } - 구현된 객체 public class TestClass implements TestInterface{ @Override public String h..

Abstract Class와 Interface의 차이

Abstract Class 1. 하나의 상속만 가능 2. 일반적으로 멤버 변수나 공통적인 메서드가 선언되어 있을 수도 있고 또는 아무런 메서드가 존재하지 않을 수도 있다. 3. 기본적으로 추가적인 구현이 필요한 클래스 4. 생성자 선언 가능, 대신 직접 생성할 수는 없고 Super를 통해 생성자 상속 가능 Interface 1. 메서드를 가지고 있지 않음 2. 실제로 가지는 값을 가지지 않으며 어떠한 기능들을 구현해야 하는지 정의해둠 3. 구현한 인터페이스를 보면 해당 클래스의 기능을 알 수 있음 4. 인터페이스 내에 변수가 선언가능하나 Public Static final 로 선언되기 때문에 상수로 선언된다. 5. 다중 상속이 가능함 6. 생성자 선언 불가

반응형