목록전체 글 (164)
개발의변화
자바에서 사용되는 원천타입의 데이터를 서로 형 변환이 가능하도록 지원해주는 Class 사용이유 형 변환 Auto Boxing: Int 타입 데이터 -> Integer 객체 Auto UnBoxing: Integer 객체 -> int 타입 데이터 가급적 지양 wrapper 클래스는 Call By Value 비교연산 Sort를 하기위해서는 비교연산이 가능한 Wrapper 클래스로 변환을 해야한다.
https://school.programmers.co.kr/learn/courses/30/lessons/161988?language=java 완전탐색으로 풀기엔 Sequence의 길이가 50000이었고 결국 12번부터 시간초과 또는 런타임 에러가 발생했다. 펄스 부분의 수열 합이 절대 0보다 작아질 수 없다는 것이 키포인트였고 펄스 부분의 수열 합이 0보다 작아질 때 0으로 처리하고 나아가는 방식을 취했다. import java.util.*; class Solution { public long solution(int[] sequence) { long answer = 0; long s1 = 0; long s2 = 0; int pivot = 1; for (int num : sequence) { s1 += p..
정적 패토리와 생성자에는 선택적 매개변수가 많을 때 적절히 대응하기 어렵다는 제약이 있다. 예시로 식품 포장의 영양정보를 표현하는 클래스를 생각해보자 트랜스지방, 포화지방,탄수화물 등 선택항목이 너무 많지만 대부분 0에 수렴하는 영양소이다. 이러한 선택항목을 표현하기 위해 점층적 생성자 패턴(telescoping constructor pattern)을 활용했다. public class NutritionFacts { private final int servingSize; private final int servings; private final int calories; private final int fat; private final int sodium; public NutritionFacts(int se..
정적 팩토리 메서드(static factory method) 클래스의 인스턴스를 반환하는 단순한 정적 메서드 public static Boolan valueOf(boolean b) { return b ? Boolean.TRUE : Boolean.FALSE } public static LocalTime of(int hour, int minute) { ChronoField.HOUR_OF_DAY.checkValidValue((long)hour); if (minute == 0) { return HOURS[hour]; } else { ChronoField.MINUTE_OF_HOUR.checkValidValue((long)minute); return new LocalTime(hour, minute, 0, 0); }..
스레드당 하나의 스택 가비지컬렉터가 돌때 스레드를 멈춘다 (Stop The World) JAVA JVM Stack: 쓰레드가 프로그램을 실행할 떄 메소드를위한 정보가 저장, (로컬변수,this,.메서드 정보) 메소드를 위한 프레임들이 만들어지고 이 프레임에 로컬변수들이 저장되고 this또한 저장이 되어짐 Heap: 객체를 저장 age값: survivor영역에서 객체의 객체가 살아남은 횟수를 의미하는 값, Object Header기록 기본적으로 사용하는 HotSpot JVM 임계값 31 Survivor영역의 제한 조건 survivor영역 중 반드시 1개는 사용되어야 하고 버전에 따라 매번 달라질 수도 있음 내부적으로 세가지 영역으로 되어짐 Eden(New Generaton): 새롭게 생성하는 객체들이 쌓임..
ECMAScript 사양은 소스코드(ECMAScript code)를 4가지 타입으로 구분 전역 코드 : 전역에 존재하는 소스코드 (전역 스코프 생성, 바인딩) 함수 코드: 함수 내부에 존재하는 소스코드 (지역스코프 생성, 지역변수,매개변수,arguments 객체 관리, 스코프 연결) eval 코드: 빌트인 전역 함수인 eval 함수에 인수로 전달되어 실행되는 소스코드 (strict mode에서 자신만의 독자적인 스코프 생성) 모듈 코드: 모듈 내부에 존재하는 소스코드 (모듈 스코프 생성) 소스코드의 평가와 실행 소스코드 평가 과정에서는 실행 컨텍스트를 생성하고 변수,함수 등의 선언문 먼저 실행 -> 생성된 변수나 함수 식별자를 키로 실행 컨텍스트가 관리하는 스코프에 등록 그 후 선언문을 제외한 소스코드가..
const circle = { // 프로퍼티: 객체 고유의 상태 데이터 radius: 5, // 메서드: 상태 데이터를 참조하고 조작하는 동작 getDiameter() { // 이 메서드가 자신이 속한 객체의 프로퍼티나 다른 메서드를 참조하려면 // 자신이 속한 객체인 circle을 참조할 수 있어야 한다. return 2 * circle.radius; } }; console.log(circle.getDiameter()); // 10 메서드는 자신이 속한 객체의 프로퍼티를 참조할 떄 자신이 속한 객체를 가리키는 식별자를 참조할 수 있어야 한다. function Circle(radius) { // 이 시점에는 생성자 함수 자신이 생성할 인스턴스를 가리키는 식별자를 알 수 없다. ????.radius = r..