언어

· 언어/JAVA
개발자로서 Java언어를 제일 먼저 접했고 현재도 주로 Java언어를 사용하고 있다. 그런데 개발을 하면서 왜? 라는 고민을 하면서 개발을 시작한지 그렇게 오래되지 않았다.처음엔 궁금하지도 않았고, 그냥 다들 그렇게 하니깐, 시키니깐 이라는 생각을 가지고 일을 했던 것 같다. 요즘엔 왜? 라는 생각을 의식적으로 많이 하려고 하는데어려움에 부딪히거나 바쁘면 그 생각을 또 지나치는 것 같다.. 그래서 내가 하고 있는 것들을 왜 사용하는지 이유를 좀 더 확실하게 내것으로 만들기 위해아주 근간부터 하나하나 기록해보려고 한다. 개발이 아니더라도 인생에서 확실히 알고 무엇을 한다는 것은 중요한 것 같다!  자바의 역사자바는 1991년 6월 썬 마이크로시스템즈에 다니던 제임스 고슬링과..
· 언어/JAVA
코딩테스트 문제를 풀다보면 N진법을 활용한 문제가 꽤나 나오는 것 같다. 그래서 까먹지 않도록 저장해놓고 익히자!! String notation = Integer.toString(100, n); Integer.toString(변환할 숫자, 변환할 진법); 직접 계산해보기 public String notation(int num, int n) { StringBuilder sb = new StringBuilder(); if (num == 0) return "0"; // 0이면 0리턴 while (num > 0) { if (num % n < 10) { sb.append(num % n); // 나머지가 1자릿수면 그대로 추가 } else { sb.append((char)(num%n-10 + 'A')); // 10..
· 언어/JAVA
자바를 공부하면서 근본적인 JVM의 동작 방법들을 알고 넘어가야겠다는 생각이 들었다. 그래서 오늘은 자바 클래스로더에 대해 알아보고 두번 세번 보았을때 더 빠르게 이해할 수 있도록 메모해보자 자바로 작성된 클래스 파일은 JVM 위에서 동작한다. 직접 운영체제 위에서 동작하지 않기 때문에 높은 이식성을 가질 수 있게 되었다. 자바 클래스로더는 컴파일된 클래스 파일을 JVM위로 올리는(Load) 동작을 수행한다. 자바 클래스로더란? 자바는 컴파일 타임이 아니라 런타임(바이트 코드를 실행할 때)에 클래스 로드하고 링크하는 특징(동적 로드)이 있다. 이 동적 로드를 담당하는 부분이 JVM의 메소드 영역에 동적으로 Java클래스를 로드하는 역할을 한다. 클래스로더에는 로딩,링크,초기화 단계로 나눠져 있다. 🔸로딩..
· 언어/JAVA
오늘은 java set에 대해 알아보자,,, 자료구조 공부를 더 많이 하도록 하자,,,!! Set이란..!! set (집합) 이란 데이터 자료구조(컬렉션) 중의 하나로 특정한 값들을 저장하는 추상자료형이다. 이때, 값들은 순서가 존재하지 않고 중복되지 않는다!! 이는 수학에서의 유한집합을 컴퓨터로 구현한 것이다. 다른 컬렉션 타입은 특정원소를 검색하는 것이 주 업무인 반면, set은 대상 원소가 집합(set)에 소속되어있느지 여부를 검사한다. Set의 특성 1. 데이터를 비순차적으로 저장할 수 있는 순열 자료구조 2. 삽입한 데이터가 순서대로 저장되지 않는다. 3. 수정 가능 ( mutuable ) 4. 중복삽입 불가, 동일한 값 존재시 하나의 값만 저장 5. Fast Lookup이 필요할때 주로 사용 ..
· 언어/JAVA
업무를 진행 하면서 BigDecimal을 주로 사용하는데 사칙연산이 기본 int와 달라서 종종 헷갈려서 정리합니다. BigdDecimal 사용 BigDecimal number = new BigDecimal("100.00010"); BigDecimal number2 = new BigDecimal("2.3110"); BigDecimal zero = BigDecimal.ZERO; 이런식으로 사용할 수 있습니다. BigDecimal 사칙연산 - 더하기 : number.add(number2); =====> "102.31110" - 빼기 : number.subtract(number2) =====> "97.6891" - 나누기 : number.divide(number2) =====> "43.27135439203808..
· 언어/JAVA
자바로 개발 하다 보면 형식의 코드들이 보인다. 나는 제네릭에 대해 공부하지 못하여 이게 뭔지 궁금했다. 그래서 자세히 알아보려 한다! 1. 제네릭(Generic) 다양한 타입의 객체에 재사용을 높일 수 있는 기법으로 클래스에서 사용할 타입을 외부에서 설정하는 것을 말한다. 선언 시 클래스 또는 인터페이스에 ""를 붙이고 타입 파라미터를 지정한다. 제네릭을 사용하지 않을 경우 빈번한 타입 변환이 발생 할 수 있으며 이는 프로그램 성능을 저하시킨다. 예시를 보자! public class Car{ private Object obj; public void set(Object obj){ this.obj = obj; } public Object get(){ return obj; } Car car = n..
· 언어/JAVA
스프링을 공부하면서 본게 오버라이딩이 자주쓰이는 것 같았다. 그래서 오버로딩과 오버라이딩의 정의를 정확히 인지하고 사용해야 내가 더 잘 사용할 수 있을것 같아서 한번 찾아보았다. 간단하게 알아보자! 오버로딩(Overloading) 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것. 오버로딩의 조건 메서드 이름이 같아야 한다. 매개변수의 개수 또는 타입이 달라야 한다. 매개변수는 같고 리턴타입이 다른 경우는 오버로딩이 성립되지 않는다. ex)😀 public class Main { public static void main(String[] args) { Message aMessage = new Message(); aMessage.getMethodInfo(); aMessage.getMethodInfo..
· 언어/JAVA
java공부를 하다가 StringBuilder라는 클래스를 알게되었다. 나는 기본 String 클래스밖에 몰랐었다. 그러나 String은 클래스가 문자열을 생성자로 넣어 인스턴스를 한번 생성하고 나면 인스턴스가 가진 문자열 값을 변경하지 못하는 단점이 있다. 이를 보완한 클래스가 StringBuilder와 StringBuffer인데 이번엔 StringBuilder클래스에 대해 알아보자. 위 단점을 보완한 내용은 즉, 같은 인스턴스 안의 문자열(char 배열) 필드 값을 추가하거나 변경할 수 있도록 되어있다. 또한 원본 문자열을 바꿀 수 있는 만큼 문자열을 다루는 메소드도 더 많이 포함되어 있다. StringBuffer와 StringBuilder는 모두 쓰임과 메소드가 같다. 그러나 StringBuffer..
· 언어/JAVA
자바 공부를 하다보니 "->" 이처럼 보이는 코드가 나와서 당황 한 적이 있다. 그래서 찾아보니 수학공부를 하며 자주 들어본 "람다"식 이라는 것 까지 알고 넘어갔지만 다시 정확하게 알고 넘어가야 할 것 같아서 이렇게 피드를 남겨보려 한다. 람다함수 람다함수는 프로그래밍 언어에서 사용되는 개념으로 익명 함수(Anonymous function)를 지칭하는 용어입니다. 현재 사용되고 있는 람다의 근간은 수학과 기초 컴퓨터과학 분야에서의 람다 대수이다. 람다 대수는 간단히 말하자면 수학에서 사용하는 함수를 보다 단순하게 표한하는 방법입니다. 한편에서는 람다식이 너무 많은 코드를 생략하다보니 오히려 프로그램의 가독성을 저해시킨다는 의견도 있다고 합니다. 람다의 특징 람다 대수는 이름을 가질 필요가 없다. - 익..
· 언어/JAVA
static키워드는 매번 쓰지만 정확히 알지 못하고 써온 것 같다. 그래서 static이 무엇인지 자세히 알아보자! 클래스를 설계할 때, 멤버변수 중 모든 인스턴스에 공통적으로 사용해야하는 것에 static을 붙인다.- 인스턴스를 생성하면, 각 인스턴스들은 서로 독립적이기 때문에 서로 다른 값을 유지한다. 경우에 따라서는 각 인스턴스들이 공통적으로 같은 값이 유지되어야 하는 경우 static을 붙인다. static이 붙은 멤버변수는 인스턴스를 생성하기 않아도 사용할 수 있다. - static이 붙은 멤버변수(클래스변수)는 클래스가 메모리에 올라갈때 이미 자동적으로 생성되기 때문에. static이 붙은 메서드(함수)에서는 인스턴스 변수를 사용할 수 없다. - static이 붙은 메서드는 인스턴스 생성 없이..
나는이지훈
'언어' 카테고리의 글 목록