본문 바로가기

Java

(19)
JAVA JSON 라이브러리 구글 GSON 알아보자(Google Gson) 이번에 소개드릴것은 구글의 GSON 입니다. GSON은 자바 라이브러리중 하나인데, 자바 오브젝트를 쉽게 JSON으로 변환시켜주는 아주 간단하고 심플한 라이브러리 입니다. 주로 Simple-JSON이나, JACKSON등 많은 JSON관련 라이브러리가 있는데요. 이 중에서 제가 사용해본 자바 라이브러리에선 가장 간편하고 편하지 않나 싶습니다. 먼저 GitHub 주소를 첨부하도록 하겠습니다. GitHub Google Gson 바로가기 Gson is a Java library that can be used to convert Java Objects into their JSON representation. (Gson은 Java 객체를 JSON 표현으로 변환하는 데 사용할 수 있는 Java 라이브러리 입니다.) ..
String Constant Pool이란? | Java String Pool Java에서 String 객체를 생성하는 방법은 2가지가 있다. 첫번째는 String literal, 즉 큰 따옴표("")를 사용하는 것이고, 두번째는 new 연산자를 사용하는 것이다. 두 방법에는 어떤 차이가 있을까? 간단한 테스트를 작성해 결과를 살펴보았다. 두 테스트 모두 성공한다. String literal로 생성한 객체는 내용이 같다면 같은 객체, 즉 동일한 메모리 주소를 가리키고 있다. 하지만 new 연산자로 생성한 String 객체는 내용이 같더라도 개별적인 객체임을 알 수 있다. 여기에는 어떤 원리가 숨어있는지, JVM 구조와 함께 이해해 보도록 한다. Java String Pool 흔히 new 연산자로 String 객체를 생성하지 않는 것이 좋다는 말을 볼 수 있다. String lite..
while 예제 - 어떤 거리를 어떤 속도를 가진 자동차가 가는데 걸리는 시간을 구하기 / While example - How much time does it take? package array03; public class WhileTest { public static void main(String[] args) { int destination = 11271; //11271미터 거리에 목적지가 있습니다. int speed=3; //당신의 자동차는 초당 3미터를 달립니다. int car=0; //당신의 자동차가 얼마만에 목적지에 도착하는지 알아봅시다. int i = 1; while (destination!=car){ //destination과 car가 같지 않으면 계속 수행 car = car + speed; i++; } //while문이 한번 돌때 마다 1초가 지나는 것입니다. 60번 돌면 1분이 지나겠죠? System.out.println(i+"번"); //3758번 w..
.equals() - String 기본 자료형을 비교할 때 == String 값을 비교할 때 equals.() - 다른 언어에는 없고 자바만 가지고 있음. * String(자바만의 기법) - new 생략 가능. - new 생략 시 : heap인데 heap안의 다른 공간에 뜸 => StringConstant(상수)Pool 같은 String일 시 같은 공간을(같은 주소) 부여함. -> 공간 절약 됨. but / data를 계속 더한다면 -> 그때마다 공간이 새로 생김. -> 이때는 heap을 사용하는 것이 조금 더 효율적. (그 공간에서 수정하기 때문에) => history를 알고 싶다면 배열로 저장해야 함. ​ * 문자열 비교할 때 사용 : equals(2중 비교) => 안전함 - ==비교 : value 값이 동일하거나 동일하지 않거나. ..
반복문 (for expression, while) for 반복문 계속 stack이 열여요. 세미콜론으로 하나의 인자를 구분해요. package array03; public class ArrayEx02 { /** * for문은 조건을 검사한다. 증가는 스택이 끝날 때!! * 초기값은 최초에만 실행된다. */ public static void main(String[] args) { for (int i = 0; i < 10; i++) { System.out.println(i); }//stack이 끝날 때 증감식 } } main method 안에 표현식(exprression)은 함수처럼 생겼지만 호출하지 않아도 실행합니다. 괄호가 끝나면 종료(stack). package array03; public class ArrayEx01 { public static vo..
메서드 (call by value passing, call by reference passing) static함수에서 heap변수를 사용할 수 없다. 값이 아닌 포인터이기 때문에 heap 의 영향 그대로 받음. 지역변수 package ch03; class Data { int num = 10; } public class MethodEx02 { static int 증가(int num) { num++; System.out.println("증가 num : " + num); return num; } static void 감소(Data d) { d.num--; System.out.println("감소num : " + d.num); } public static void main(String[] args) { // call by value passing int myNum = 100; myNum = 증가(myNum)..
파일명 바꾸기 // how to rename a file(.java)
자바 - 식별자, 연산자, 조건문, 함수(method) // Operator, Identifier, if, method 연산자 조건문 60점이상은 합격! 하지만 4학년은 70전이상되야 합격! ram에 띄우는 방법 1. static - 처음 부터 메모리에 띄움 2. new - 띄우고 싶을 때 heap에 띄움 호출하는 방법 내 클래스 명.함수명(인수...);