본문 바로가기

java10

[VS] Compiler vs JIT Compiler 안녕하세요. TDR입니다. 오늘은 일반적인 컴파일러와 Just-In-Time(JIT) 컴파일러를 비교해 보겠습니다. 우선 각각의 정의를 간단히 알아보면 다음과 같습니다. Compiler 소스 코드 전체를 읽고 해석하여 중간 코드나 목적 코드로 생성하는 것 JIT Compiler 소스 코드의 일부 또는 전체를 기계 코드로 런타임(실행 중) 생성하는 것 기계 코드(중간 코드 or 목적 코드)를 생성하는 것 자체는 동일합니다. (그게 Compiler의 역할이니) 중요한 것은 "시점"입니다. 이미 잘 아시겠지만, C, C++ 같은 언어는 사전에 소스 코드와 헤더 파일, 라이브러리 등등을 모두 컴파일하여 실행 시점에는 고속으로 실행할 수 있습니다. 반면 Java의 Hotsopt VM이나 .NET의 CLR(공용 언.. 2024. 2. 18.
[python] for 반복문 안녕하세요. TDR입니다. 오늘은 어느 언어에서만 많이 쓰이는 for 반복문을 Java와 비교해서 python에서는 어떻게 사용하면 되는지 정리해 보겠습니다. #### python에서의 for문 구조 for in : #### 일반적인 반복문 ## Java for (int i = 0; i < 10; i++) { System.io.println(i); } ## python # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 for i in range(10): print(i) #### 특정 값 만큼 증가 ## Java for (int i = 0; i < 10; i = i + 2) { System.io.println(i); } ## python # 0, 2, 4, 6, 8 for i in range(0, 1.. 2024. 2. 2.
[Java] String.format 안녕하세요. TDR입니다. 평소에 쓸일이 거의 없지만 막상 쓸려고하면 기억이 안나서 정리하는 시리즈 입니다. 오늘 정리할 것은 Java의 콘솔 출력 시 format을 지정해서 출력하는 방식입니다. 예를들어, 소수점 2자리까지만 출력하고 싶다. 1000단위 마다 콤마를 찍고 싶다. (원화 표시) 문자열을 10자리 단위로 출력하고 싶다. 와 같은 작업을 하고 싶을 때 어떻게 해야하는 지에 대한 정리입니다. String.format();// Formating한 문자열 반환 System.out.format();// Formating한 문자열 출력 일반적으로 위와 같이 사용을 합니다. 크게 문자열을 다루는 것과 숫자를 다루는 방식이 있습니다. 문자열 Format %[인자순서값$][-][자리수]s : 검은색 글자는.. 2020. 6. 23.
[C#]as와 is 연산자 C#에서는 casting을 기타 다른 언어들처럼 변수 앞에 변환할 변수 또는 객체 타입을 괄호로 묶어 casting을 할 수 있지만 as 연산자도 제공한다. 그리고 이것이 해탕 객체인지 확인 할 수있는 is 연산자도 제공한다.글보다 예제를 보자. 123456789101112static void Main() { object[] temp = new object[2]; temp[0] = "test code"; temp[1] = 2016; string str1 = temp[0] as string; string str2 = temp[1] as string; int num1 = temp[1] as int; // 이거는 안된다. int num2 = (int)temp[1];} Colored by Color Script.. 2016. 3. 29.
[Java]Garbage Collection Java는 garbage collection이 메모리 관리를 해주기 때문에 신경쓸필요 없다? 천만의 말씀...그래서 오늘은 Garbage collection에 대해서 써볼까 합니다. 그렇다고 뭐 새로운 내용을 쓰는건 아니고 그냥 나중에 제가 보기 편하게 정리하는 수준입니다. 우선, Garbage collection이란 무엇인가? 2014. 10. 29.
[Java]Call by value / reference 예전에 처음으로 C언어를 Call by value와 Call by reference의 개념은 나에게 매우 인상적이었다.말로 설명하기에는 너무 추상적인 느낌이라 잘 할 수 없지만 뭔가 미심쩍던 부분들이 한방에 해결되는 그런 느낌이었다. 그러다 Java를 시작하게 되었고 Java를 처음 접하는 나에게 누구나 처음 말하는 것은 "Java에는 pointer 개념이 없다!" 였다. 그 말을 듣는 순간 다시금 내가 알고 있던 개념들이 안개속에 들어가 뿌예지는 것을 느꼈다. 대체 pointer 개념 없이 어떻게 컴퓨터가 동작 할 수 있다는 말인가!? 그리고 Java를 공부하다 어느 문구를 보는 순간 피식하고 웃었다. 그 문구란 "Java에는 참조가 있다" 였다. Java가 워낙 API가 막강하다보니 왠만하면 신경 안.. 2014. 10. 28.
[Java]추상 클래스 & 인터페이스 안녕하세요. TDR입니다. 이번에 정리해볼 거는 추상 클래스와 인터페이스 입니다. 이 둘은 비슷해 보이면서도 조금 차이가 있는데요 한번 알아 보죠. 추상 클래스(abstract class) : 추상 메소드를 가진 클래스 추상 메소드(abstract method) : 구현은 하지 않은 상태로 반환 값 & 메소드 이름 & 파라미터만 정해진 메소드 - 예전에 C언어로 코드를 작성할 때 A()라는 함수를 부르기 위해서는 호출하는 위치보다 위에 함수를 작성하거나 "이런 함수가 쓰일 것이다"라고 하여 미리 함수의 형만 정의하고 아래에 함수를 구현했던 것을 본적이 있으실 겁니다. 어떻게 보면 이와 유사한 느낌입니다. 즉, "이런 형태의 메소드를 여러군데에서 쓸 것이다"라고 하면서 미리 선언해 놓는 거죠. 그럼 왜 내.. 2012. 3. 11.
[Java]접근제한자 안녕하세요. TDR입니다. 저번의 제한자에 이어서 오늘은 접근제한자에 대해서 정리해 보겠습니다. 접근제한자에 대해서는 특별히 할 말도 없고하니 바로 보겠습니다. +++ public +++ : 어떤 때라도 상속과 이용이 가능합니다. - public은... 그야말로 아무대서나 막 쓸 수 있습니다. 오브젝트 안밖 할꺼 없이 다 이용가능하고 패키지 안밖 할꺼 없이 다 쓸 수 있습니다. 물론 상속도 패키지 안밖 할꺼 없이 다 가능합니다. 그냥 여기저거에서 막 쓰고 싶을 때 public을 선언해 주면 되겠습니다. +++ private +++ : 오브젝트 안에서만 쓸 수 있습니다. - 위에서도 설명 했지만 오브젝트 안에서"만" 쓸 수 있습니다. 그 말인즉, 일단 상속... 절대 안됩니다. 그게 패키지 안이든 밖이든 .. 2012. 3. 11.
[Java]제한자 안녕하세요. TDR입니다. 이번에 정리해 볼 거는 JAVA에서의 제한자 입니다. 저는 Java를 야매(?)로 배웠다고 하기에도 애매하게 배워서 처음에 그야말로 혼돈의 도가니였습니다. 그 중에서도 가장 햇갈렸던게 C언어와 달리 앞에 붙는 제한자와 제한 접근자였는데 막상 이것이 무엇인가를 찾아보면 글로 이건 이거다라고 잘 설명이 나와 있지만 뒤돌아 서면 햇갈리고 다시 찾아보고를 반복했던 기억이 있어서 이번 기회에 이것들을 정리해 보고자 합니다. final : 필드나 클래스에 붙이는 제한자로 이것이 붙은 필드는 수정 할 수 없고 클래스는 상속 할 수 없습니다. 정의는 이런데 사실 이런 것만 보고는 보는 순간만 이해가 갑니다.(저는 그랬습니다. -_-;;) 간단한 예를 보면... example #1) final.. 2012. 3. 4.
[Java]연산자 우선순위 안녕하세요. TDR입니다. 매번 쓰면서도 매번 햇갈리는 거를 매번 찾아보기 지쳐서 찾아 보기 쉽도록 정리하는 페이지 입니다. 코딩을 하다보면 순간적으로 "응? 이거 누가 먼저 연산이 되던거였지? ㅡ_ㅡ?"하는 순간이 있습니다. 평소에는 사실 그렇게 복잡한 연산을 할 일이 없기 때문에 그럴일이 거~~~의 없지만 아주 가~~끔 어쩌다 한번 조금 복잡한 수식을 쓰면 내가 써놓고도 모든게 의심스럽게 보일 때가 있습니다... 사설이 길어졌는데 우선 순위를 정리해 보겠습니다. 연산자 1 [ ], ( ), ++(후치), --(후치) 2 ~, !, ++(전치), --(전치), +(부호), -(부호) 3 new, 캐스트 연산자 4 *, /, % 5 +, - 6 , >>> 7 , >=, 8 ==, != 9 &(비트 연산).. 2012. 3. 4.