leech gamer

엔디언Endianness

컴퓨터메모리와 같은 1차원의 공간에 여러 개의 연속된 대상을 배열하는 방법을 뜻하며, 바이트를 배열하는 방법을 바이트 순서(Byte order)라 한다.

엔디언은 보통 큰 단위가 앞에 나오는 빅 엔디언(Big-endian)과 작은 단위가 앞에 나오는 리틀 엔디언(Little-endian)으로 나눌 수 있다.

예를 들어 0X003C653F 가 있다고 할때, 가장 큰 단위의 수는 0x04 자리에 위치한 00 , 가장 작은 단위수는 0x07 자리에 위치한 3F가 된다.

그래서 큰단위 수 부터 정렬한 00 3C 65 3F는 Big-endian이라고 할 수 있고 작은 단위부터 정렬한 3F 65 3C 00을 Little-endian이라고 할 수 있다.

--

--

I worked overtime today.

So I just solved an algorithm.

  • Shortest distance to every other character from given character

examples

IInput: S = “geeksforgeeks”, X = ‘e’
Output: [1, 0, 0, 1, 2, 3, 3, 2, 1, 0, 0, 1, 2]

IInput: S = “helloworld”, X = ‘o’
Output: [4, 3, 2, 1, 0, 1, 0, 1, 2, 3]

My solution

--

--

자바소스(.class)를 Java Compiler 가 (.class) 파일(Byte code)로 변환해주고 이 바이트 코드를 JVM이 실행해 기계어로 바꿔준다는데!

바이트 코드는 무엇인지 ? 중간언어(바이트 코드)를 왜 두는 건지? 알아봅시다.

바이트 코드(ByteCode)

> definition of Wiki

바이트코드(Bytecode, portable code, p-code)는 특정 하드웨어가 아닌 가상 컴퓨터에서 돌아가는 실행 프로그램을 위한 이진 표현법이다. 하드웨어가 아닌 소프트웨어에 의해 처리되기 때문에, 보통 기계어보다 더 추상적이다.

바이트 코드는 JVM이 이해할 수 있는 0과 1로 이루어진 이진코드라고 이해하면 쉽다.

왜 바이트코드가 필요할까? (왜 중간 코드가 있어야 할까? )

  • 중간 코드가 없는 경우

N X M개의 컴파일러를 만들어야하는 수고로움이 있었다.

--

--

Our team has started a new Java project . So, I want to find language of sense in Java again. Today I solved 3 Basic Algorithm problems after work.

  1. find String

find number of times a string occurs as a subsequence in given string.

2. case conversion

Replace Lower Case to Upper Case and UpperCase to Lower Case in a String.

--

--

Why Java is WORA(Write Once Run Anywhere)?

이는 Sun이 자바의 cross-platform(여러 종류의 컴퓨터 플랫폼에서 동작할 수 있다는 것을 뜻하는 용어)의 장점을 나타내려고 내건 슬로건이다. Sun이 왜 이런 슬로건을 내걸었을까 ?

전통적인 언어 (C, C++) 등으로 작성된 프로그램들을 컴파일하고 나면 특정 하드웨어가 이해할 수 있게 바꿔야했다. 같은 코드를 다른 하드웨어에 적용하려면 다시 컴파일을 해 그 하드웨어에 맞춰서 바꿔줘야했다.

하지만 자바에서는 이럴 필요가 없다.

자바 컴파일러는 바이트코드(byte code)라고 불리는 중간 언어로 바꾸고 이 바이트 코드를 JVM에서 실행시키는데, JVM이 바이트코드를 해당 하드웨어가 이해할 수 있는 머신코드로 바꿔주기 때문이다.

그래서JVM만 설치되어 있으면, 어떤 하드웨어에서도 실행 가능하다.

Reference

https://www.geeksforgeeks.org/why-is-java-write-once-and-run-anywhere/

--

--