2016-05-20: 일주일째
어제 저녁… 사람만나고 벼락치기 공부하고. 오늘 처음으로 쪽지 시험(일본어)을 봤다. 1, 2장이 그렇게 어려운 내용은 아닌데도… 학습서에 있는 내용을 그대로 외우고 적는다는 것은 쉽지 않았다. 그래도 벼락치기로 공부해서 100점을 받아서 다행이라는 생각이 들었다. 다음 주 월요일에도 시험이 계속된다. 주말에도 공부해야 한다니 조금 슬퍼진다.
어제 저녁… 사람만나고 벼락치기 공부하고. 오늘 처음으로 쪽지 시험(일본어)을 봤다. 1, 2장이 그렇게 어려운 내용은 아닌데도… 학습서에 있는 내용을 그대로 외우고 적는다는 것은 쉽지 않았다. 그래도 벼락치기로 공부해서 100점을 받아서 다행이라는 생각이 들었다. 다음 주 월요일에도 시험이 계속된다. 주말에도 공부해야 한다니 조금 슬퍼진다.
4년제 대학(공과대학)을 나와서 취득하지 않아도 되지만… 각고(?)의 노력으로 필기에 합격했다. 어휴… 얼마나 다행인지. 이제 실기를 준비해야 하는데… 주말에 피아노와 함께 준비하면 좋을 것 같다…
2016-05-19: 정보처리기사 필기 합격 더 읽기"
합정역에서 미팅(?)을 다녀온 후 허겁지겁 일본어 교재를 다시 쳐다보고 있다. 내일 처음으로 쪽지 시험을 치게 된다. 과연 한 방에 붙을 수 있을까? 첫 내용이라서 그렇게 어렵진 않다. 기초적인 한문을 외우는 것에 집중하면 의외로 쉽게 대비할 수 있을 것 같다.
어서 공부하자! ㅋㅋ…. 옛날에 맞춤법 시험을 보는 기분이네. 초등학교 시절엔 받아쓰기도 여러 번 했었지…
variable 미국식 [|veriəbl;|vӕriəbl] 영국식 [|veəriəbl]
[형용사] 변동이 심한; 가변적인 참고 invariable
variable temperatures(가변적인 기온)
출처: http://endic.naver.com/enkrEntry.nhn?sLn=kr&entryId=205d8e9c40c7439da55eebd7e85c3507&query=variable
사용법
자료형 변수명; // 변수 선언
int num;
String name;
num=50; // 자료 저장(초기화)
name=”Hong”; // 문자열은 “”로 묶어준다.
num=30; // num이 30이 된다. ‘변수’ 값이 바뀜.
변수 선언과 초기화를 분리하는 것이 보기에 좋다.(취향의 문제)
자료형 종류는 8가지.
변수명은 마음대로. 선언은 한 번만!
int num = 50;
int num = 30; // 오류!
자바의 정석 21쪽
class VarEx1 { public static void main(String[] args) { int year = 0, age = 14; System.out.println("Year:" + year); System.out.println("Age: " + age); year = age + 2000; // age + 2000 = year age = age + 1; // age + 1 System.out.println("\nYear:" + year); System.out.println("Age: " + age); } }
실제로 수학에서는 age + 2000 = year 이지만 컴퓨터에서는 year = age + 2000 식으로 사용
변수를 선언하여 값을 저장하고 출력.
누적 연산
age += 1; // age = age+1; 또는 age++; 과 동일
참고
= (대입 연산자)는 어떤 식보다도 늦게 수행된다.
입력/출력을 하지 않고 임시로 사용되는 것
보통 일반적인 경우 tmp, temp 라는 이름으로 사용됨
예: a, b의 값을 서로 교환할 때
temp = a;
b = a;
b = temp;
변수의 명명규칙
권장하는 규칙
final int MAX=100; // C언어에서 const와 같이 JAVA에서는 final을 사용해 변수를 상수화 시킴. 값을 잠가 다른 값으로 변경할 수 없게 만듦. MAX 처럼 모두 대문자를 사용. 여러 단어로 이루어진 경우 _을 붙여준다.(MAX_NUMBER)
변수의 타입
논리 |
문자 |
정수 |
실수 |
boolean: 1 |
char: 2 |
byte: 1 short: 2 int: 4 long: 8 |
float: 4 |
printf
System.out.printf(“점수: %d \n”, score); // %d: score를 정수 형태로 찍어라, \n: 줄바꿈
System.out.printf(“a: %d, pi: %f \n”, a, pi); // 여러 개를 표시 가능.
3 |
. |
1 |
4 |
만약 큰 값이 오면 정수부는 최대한 살리고 소수점이 영향을 받음.
Scanner는 java.lang (기본)에는 없고, java.util 패키지에 있음. 같은 일을 하는 패키지를 모음.
C언어에서 Header File을 Include 하듯, JAVA에서는 Import 하면 된다.
자바의 정석 p.41 입력 받고 출력하기
import java.util.Scanner; class ScannerEx { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("input one number "); String input = sc.nextLine(); int num = Integer.parseInt(input); System.out.println("value: " + input); System.out.printf("num = %d%n", num); } }
실행 결과
import java.util.Scanner; // java.util.* 을 전부 임포트 하면 좀 그렇겠지??
Scanner scanner = new Scanner(System.in)
String input = sc.nextLine();
nextLine(); // 스페이스바 포함해 키보드로 입력받음(문자열)
next(); // 스페이스 바 이전의 단어만 인식(문자열). 거의 사용하지 않음.
sc.nextLine(); // 결과가 문자열로 나옴
int num = integer.parseInt(input);
실습1 이름과 나이 입력받아 출력하기
import java.util.Scanner; class TestScanner1 { public static void main(String[] args) { String name, tmp; // init name, tmp int age; // init age Scanner sc = new Scanner(System.in); System.out.print("input your name "); name = sc.nextLine(); // input name System.out.print("input your age "); tmp = sc.nextLine(); // input age age = Integer.parseInt(tmp); // age (String to Integer) System.out.print("\nName: [" + name + "] and... "); // results System.out.printf("Age : [%d] ^_^", age); } }
실행결과
실습2 두 개의 숫자를 입력 받아 출력
import java.util.Scanner; class TestScanner2 { public static void main(String[] args) { int num1, num2, total; // init numbers, total variable String tmp; // init temp Scanner sc = new Scanner(System.in); System.out.print("input number one "); tmp = sc.nextLine(); // input num1 num1 = Integer.parseInt(tmp); // num1 to Integer) System.out.print("input number two "); tmp = sc.nextLine(); // input num2 num2 = Integer.parseInt(tmp); // num1 to Integer) total = num1 + num2; // 1+2 System.out.println("one + two = " + total); // result } }
실행결과
빨래도 돌리고+제습기 틀어 놓고… 새벽 5시 반에 일어났나?? 빨래가 2시간동안 돌아가니 금방 일어나야 했다. 그래서 그런지 어제보다 훨!~~~~씬 피곤하고(오늘도 꿀잠을 잘 것 같다) 민나노 일본어 교재를 펼칠 힘이 나지 않는다…ㅋㅋ 내일 일찍 일어나서 문제를 풀지, 아니면 지금 해 놓고 내일 아침 푹 쉴지 고민중이다.
아침에 일어나서 (조식으로는 아주 무거운) 크!림! 파스타를 해 먹었다.(중간중간 빨래도 돌리고, 너느라 바빴다.)
프로그래밍 시간에는 변수를, 일본어 시간에는 시간에 대해서 배웠다. 간간이 쓴소리도 듣지만 일본 정보나 생활 경험을 알려주는 부분에는 고개가 끄덕여지고 여전히 ‘우물 안 개구리’임이 느껴진다. 계속 자극을 받으며 화이팅할 수 있는 힘이 되면 좋겠다.(오늘은 어제보다는 덜하지만 그래도 좀 시끄럽게 떠들었던 것 같다. 내일은 정말 수업 시간에는 조용히 하고 있어야지…)
자바 프로그래밍을 메인으로 가르쳐준 다는 말에 올해 초 정말 사고 싶었던 책이 스르르 내 손에 들어왔다. 학원에서 좋은 교재로 공부를 시키는 것 같아 기분이 좋다. 그동안 다른 사람의 책을 빌려 쓰고 있었던 일본어 교재(민나노 일본어)도 내 것을 받았다. 학원 책상과 의자가 좀 불편하지만 최대한 힘내 볼 생각이다. 아 졸려…10시까지 문제를 풀어보고 6시 반이나 7시쯤 일어날 계획. 아마 또 일어나기 되게 싫겠지만…ㅋ
살이 금방 빠지지는 않지만 근육이 생겨서 살이 잘 빠지는 체질을 만들어주긴 해요…… 한달만에 몇킬로가 빠진다 이런 건 없구요, 육개월정도 하시면 원래 체질하고 다른 체질로 변하실거예요….. 장기적으로 볼때는 가장 효과적인 방법이죠….. 걷기 운동 하루 한시간씩 한다 하시고 그냥 평생 한다 이렇게 생각하시면 살 잘 안쪄요… 매번 다이어트 하고 다시 살빼고 이러는 거 보다는 훨씬 효과적이죠.
무릎 연골 나갔다니 뭐니 말이 많지만, 한 방에 10km가 아니라 오전/오후 나누어 5km씩 6개월을 꾸준히 다니면 충분히 살이 빠질 것 같다. 이전 직장에서도 이 방법으로 감량 효과를 봤는데, 댓글들과 마찬가지로 먹는 양을 조절해야 하는 것은 맞는 것 같다. 살을 빼기 위해 아침을 든든히 먹자. 방금 전에도 편의점 도시락을 흡입하고 팥만쥬를 6개 후루룩 마셨(?)다. 조심해야겠다.
일본어 로케일셋 오류
커맨드 프롬프트의 기본 캐릭터셋이 932(ANSI/OEM – 日本語 Shift-JIS)라서 깨져 보이는 것.
텍스트파일 저장 시 해당 Character Set으로 지정해준다.
http://blog.daum.net/missk1008/8498338 를 참고하였습니다.
日本語(Microsoft IME)를 추가해준다.
영어를 입력해 일본어로 바꾸는 식으로 입력하려면? 우측의 KANA 단추를 누르거나 Ctrl+Shift+CapsLock을 누르면 된다. 일본어 상태에서 영어를 입력하려면 Alt+` 누르면 됨.
윗주 달기(후리가나 붙여줌)
윗주 달기: 루비 텍스트라고 되어 있네? 앞으로 일본어 키보드에 대해 좀 더 조사해 볼 예정.
2016-05-18 일본어 키보드 관련(첫 시도) 더 읽기"
컴파일 관련 기초적인 실수
덧: 혹시나 환경 변수 때문에 실행이 제대로 되지 않나 했지만… 큰 관련은 없는 것 같다.
어제에 이어…
class JavaEx01 { public static void main(String[] args){ System.out.println("Java!"); System.out.print("Programming"); System.out.print(" print"); } }
System.out.print : 줄바꿈 없음
comment가 아주 중요. 자바의 주석은 두 가지. // or /**/
/* 작성자: AAA 일자: 2016-05-18 용도: 테스트 소속사: 00회사 */ class JavaEx01 { //한 줄 주석 public static void main(String[] args){ /* 여러 범위 주석 System.out.println("Java!"); System.out.print("Programming"); System.out.print(" print"); */ System.out.println("Age: " + 10); // System.out.println("Height: " + 170); // 잠깐 실행에서 제외하고 싶을 때 주석을 사용하면 편리하다. } }
메모리에 확보한 공간에 붙이는 별칭(Alias)
자료형 변수명;
|
자료형 |
크기(Byte) |
문자 |
char |
2 |
숫자(정수) |
byte |
1 |
|
short |
2 |
|
int |
4 |
|
long |
8 |
숫자(실수) |
float |
4 |
|
long |
8 |
불린 |
Boolean |
1 |
변수: 무엇인가를 기억시키고, 사용할 수 있다는 것.
int a=10
int b;
b = a; // a는 상수화되어 b에 저장됨.(등호의 오른쪽에 넣는 순간…)
Address(번지)
변수명
‘Camel 표기법에 의거’ 변수명을 지어보자.
1024 |
512 |
256 |
128 |
64 |
32 |
16 |
8 |
4 |
2 |
10승 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
Bit |
Byte |
Kilo Byte |
Mega Byte |
Giga Byte |
Tera Byte |
Peta Byte |
0 or 1 |
8Bit |
1024Byte |
1024KB |
1024MB |
1024GB |
1024TB |
|
영문자 1개 |
|
|
|
|
|
|
|
|
|
|
|
|
|
↑
MSB(Most Significant Bit, 부호비트)
최상위 비트 (most significant bit, msb)는 최고값을 갖는 비트 위치이다. msb는 가장 큰 숫자를 왼쪽에 기록하는 자리 표기법의 규정 때문에 가끔 “left-most bit”를 뜻하기도 한다.
출처: <https://ko.wikipedia.org/wiki/%EC%B5%9C%EC%83%81%EC%9C%84_%EB%B9%84%ED%8A%B8>
char -> 2Byte (자바에서는 2바이트임. UNICODE를 지원하기 때문)
ASCII
모든 코드를 2바이트로 만들자… 유니코드
유니코드
A: 65, a: 97일 때 차이는 32.
별다른 표시가 없는 경우
100 -> int
3.14 -> double
3.14f -> float
더 큰 자료들은 별도 클래스로 제공합니다.
지수표기법.
Boolean: 1Byte.
참/거짓을 판별하는 용도로 사용.
예제
String: 문자열 저장. 기본 자료형은 아니지만, 사용의 편의를 위해 만든 클래스라고 함.
String name;
name=”홍길동”;
String name=””; // 백지상태로 clear
전화번호
String tel = “010-0000-0000”; // 전화번호를 String으로 저장
System.out.println(tel); // 출력
참고: C언어에서는 문자열을 배열로 만들어서 번거로움
Char: 한 글자 표기
char ch;
ch = ‘A’; // 작은 따옴표로
char name=’ ‘; // char을 clear하는 경우 한 칸 띄움.(스페이스바를 저장하는 건가?)
개인 정보를 변수에 저장해 출력하기
class JavaEx02 { public static void main(String[] args){ String name, tel, address, email; int age; name="Gil-Dong Hong"; tel="010-9999-9999"; address="Seoul, South Korea"; email="aaaa@bbb.com"; age=31; System.out.println("----- " + name + "'s Profile -----"); System.out.println("Age: " + age); System.out.println("Tel: " + tel); System.out.println("Address: " + address); System.out.println("Email: " + email); } }
실행결과.
Syntax Error(문법 오류)는 찾기 쉬움. 논리적 오류는 구조적인 문제이므로 발견하기 어렵다.
직급, 기본급 출력
class JavaEx03 { public static void main(String[] args){ String name, position; int basePay; name="Gildong Hong"; position="manager"; basePay=300000000; System.out.println("----- " + name + "'s Profile -----"); System.out.println("Position: " + position); System.out.println("Base Pay: " + basePay); } }
실행결과
민나노 일본어
단어
회화
기타
단어
회화
그 외
2016-05-18: 민나노 일본어 3,4강 예복습 더 읽기"
원본 링크: Posting Source Code(WP Home) / 개발자 블로그(Viper007Bond)
{code lang=”java”}
내용 입력
{/code}
와 같이 편하게 쓸 수도 있다.
{cpp title=”제목” highlight=”1-3,6,9″}
내용 입력
{/cpp}
도 가능. 참고로, {}를 []로 바꿀 것.
SyntaxHighlighter Evolved: 사용법 더 읽기"
“C:\Users\bs\Downloads\jdk-8u25-windows-x64.exe” 설치
PATH=(기존경로끝에);C:\Program Files\Java\jdk1.8.0_25\bin
CLASSPATH=C:\Program Files\Java\jdk1.8.0_25\lib\tools.jar
(자바에서 제공하는 클래스를 쫙 제공함)
결과
Command prompt에서 JAVA 실행 가능해야 함
class JavaEx01 { public static void main(String[] args){ System.out.println("Java!"); } }
주의: System을 소문자로 입력하니 컴파일 오류가 났다.
class JavaEx01 {
public static void main(String[] args){
System.out.println(“Java!”);
JAVAC로 컴파일
이런 파일이 생성됨.
2016-05-17: JAVA 프로그래밍 시작 더 읽기"