언어

언어/Kotlin

[Kotlin] Companion Object

오늘은 Kotlin의 Companion Object 에 대해서 알아보려고 한다. 간단하게 설명하자면 Companion Object는 저번 글에서 설명했던 Java의 static 같은 역할을 한다. ​ 하지만 정확하게 어떻게 사용되고 어떤 역할을 하는지에 대해 알아보자. ​ Companion Object 는 다음과 같이 사용된다. class Member { companion object { val name = "BB_GG" fun method() = "BB_GG입니다." } } static 과 같은 역할을 한다고 했지만 모습은 매우 다른 모습인걸 알 수있다. ​ 아무튼 위와 같이 companion object를 통해 name을 선언하면 다음과 같이 이용할 수 있다. fun main(args: Array) ..

언어/Java

[Java] static 변수

이번엔 static 변수에 대해 알아보려고 한다. 아예 몰랐던 지식은 아니지만 정확히는 어떤 역할을 하는지 알지 못하는 거 같아서 정리하게 됬다. ​ 대충 메소드나 변수를 만들 때 쓰이고 메모리는 고정되지만 값만 바뀌게 할 수 있는 키워드라 생각하고 있었다. ​ 하지만 정확히 설명하자면 메모리에 고정적으로 할당되어, 프로그램이 종료될 때 해제되는 변수를 static 변수라고 말한다. ​ 이해를 돕기위한 예제를 가져와보자면 public class Member { private String name = "BB_GG"; } 다음과 같은 클래스가 있을 때, 이 클래스를 통해 다른 클래스에서 n개의 Member를 생성하면 "BB_GG"라는 값을 가지는 메모리가 n개가 생겨버린다, 이는 메모리 효율에 매우 좋지않은..

언어/C

[C] volatile 변수

volatile 변수오늘은 C언어의 volatile 변수에 대해 알아 보려고 한다.volatile은 변수를 선언할 때 변수 앞에 붙일 수 있는데, 이 키워드는 해당 변수를 최적화에서 제외하는 역할을 한다.이게 무슨 말인지 알려면 C언어의 컴파일러가 최적화하는 방식에 대해서 알아야한다. 예를 들어서, 다음과 같은 코드가 있다고 가정한다.int i = 0; while(i  C언어의 컴파일러는 이 코드를 최적화 하기 위해 while문을 없애버리고 그냥 i에 10을 할당하는 최적화 방식을 가지고 있다.반복되는 구문과 같은 불필요한 연산을 최적화한다고 생각하면 된다. 일반적인 상황에서는 이러한 최적화가 큰 이득이 될 것이다.하지만 만약 저 구문이 하드웨어 레지스터에 값을 쓰는 프로그램이라던가, 필수적으로 실행했..

언어/Java

[Java] Iterator 사용

Iterator란 우리가 흔히 사용하는 그룹 데이터들(Set, List, Map)을 읽어오는 데 도움을 줄 수 있다. 그러면 사용법을 한 번 알아보도록 하자. ​ Iterator 없이는 다음과 같이 코드를 짜고 읽어와야 한다. ArrayList list = new ArrayList(); list.add(1); list.add(5); list.add(9); for(int i = 0; i = 5){ System.out.println("5보다 크거나 같습니다."); }else{ System.out.println("5보다 작습니다."); } } 5보다 작습니다. 5보다 크거나 같습니다. 5보다 크거나 같습니다. 라는 결과를 얻을 수 있..

언어/Java

[Java] Math 클래스

오늘은 Java의 Math 클래스에 대해 알아보려고한다. 클래스 이름답게 안에 존재하는 메소드들은 주로 수학에 관련된 것들이 많다. 그 중에서 자주 쓰이는 것들을 알아보려고한다. ​ 1. Math.random() 아마도 Math 클래스를 쓰면서 가장 처음으로 접하게 될 메소드 일 거라고 생각한다. 이 메소드는 랜덤으로 숫자를 발생시키는 기능을 한다. System.out.println((int)(Math.random() * 10)); // 0 ~ 9 System.out.println(((int)(Math.random() * 10) + 1)); // 1 ~ 10 Math.random()에 값을 곱하고 더하는 걸로 원하는 지점을 설정 할 수 있다. Random ran = new Random(); System...

언어/Java

[Java] 문자열 자르기, 길이 알아보기

오늘은 코딩을 하면서 문자열 길이를 알아내서 자르기를 해보았다. ​ 일단 길이를 알 수 있는 기능부터 살펴보자 문자열의 길이는 length()를 통해 알아낼 수 있다. String str = "Hello World!"; System.out.println(str.length()); 이를 컴파일 하면 12라는 결과를 얻을 수 있다. 하지만 배열은 괄호를 빼고 length 를 통해 알아낼 수 있다. String[] arr = {"Hello", "World", "!"}; System.out.println(arr.length); 이를 컴파일 하면 3이라는 결과를 얻을 수 있다. 이차원 배열을 이용할 때에는 다음과 같이 사용할 수 있다. int[][] arr = {{3, 5}, {5, 7}, {8, 10}}; Sy..

언어/Java

[Java] ArrayList의 Sort

ArrayList의 Sort 최근에 코딩을 하면서 ArrayList의 Sort 기능을 이용해 보았다. ArrayList list = new ArrayList(); list.add(1); list.add(3); list.add(5); list.add(4); list.add(1); list.sort(null); 보기와 같이 list에 값을 아무렇게나 넣고 list.sort()를 통해 정렬을 해줄 수 있다. 출력결과는 다음과 같다 [1, 1, 3, 4, 5] 하지만 정렬을 할 때는 오름차순이나 내림차순 같이 형식을 지정해야 할 순간들이 꼭 생긴다. 이는 다음과 같이 처리할 수 있었다. list.sort(Comparator.naturalOrder()); // 오름차순 == null을 넣었을 때랑 같음 list...

언어/Java

[Java] for문과 foreach문

for 문 for문은 우리가 반복문을 배우면서 접하는 가장 기본적인 형태이다. String[] numbers = {"one", "two", "three"}; for(int i=0; i

ppusda
'언어' 카테고리의 글 목록 (2 Page)