# 자바는 어떤 식으로 돌아갈까.
1. 소스 - 자바언어로 코드를 작성합니다.
2. 컴파일러 - 컴파일러로 오류를 확인하고 제대로 돌아가면 최종결과를 만들어줍니다.
3. 결과물(코드) - 바이트코드라는 코딩된 문서를 만들어줍니다.
비교적 컴퓨터가 알아들을수 있도록 번역된 것입니다.
4. 가상머신 - 가상 머신에서 바이트코드를 실행시킵니다. 결과물이 제대로 나왔는지 확인합니다.
# 실제 자바로 할수 있는 일
1. 소스 코드를 입력 - [.java]라는 확장자로 저장됩니다.
2. 컴파일러 - 타이핑한 소스를 컴파일합니다. 오류가 없으면 [.class]라는 확장자 파일이 만들어집니다.
3. 결과물(코드) - [.class]확장자의 파일
4. 가상머신 - 실제 이해 가능한 형태가 되어 실행시켜줍니다.
# 자바 코드의 구조 (소스파일>클래스>메소드>선언문)
1. 클래스 - 하나의 프로그램에는 하나이상의 클래스가 들어갑니다.
2. 메소드 - 일반적인 함수나 프로시저 비슷~~~ 자바에서는 메소드라고 합니다. (클래스에는 하나이상의 메소드가 있다.)
3. 선언문 - 메소드안에서 처리할 일을 지시하는 내용.
# 문법
1. 모든 선언문은 세미콜론(;)으로 끝난다.
2. 주석문 쌍슬래쉬(//)로 시작한다.
3. 대부분의 공백은 큰 의미가 없다.
4. 변수선언은 다른 언어와 다르지 않다.
5. 클래스나 메소드를 정의하는 부분은 중괄호안에 들어간다.
6. 대입연산자는 등호 한개(=)로 구성.
7. 동치 연산자는 등호 두개(==)로 구성.
8. 반복문에 관하여 아직은 C언어와 충돌하는 곳은 없어보인다.
# print / println 의 차이.
println에는 줄바꿈 문자를 포함한다.
# 소스를 쳐보자.
//p.46
public class Loopy {
public static void main(String[] args) {
int x=1;
System.out.println("순환문이전");
while(x<4) {
System.out.println("순환문내부");
System.out.println("x의 값은 '+x+'입니다.");
x++;
}
System.out.println("여기는 순환문 이후입니다.");
}
}
//p.47_1
class IfTest {
public static void main(String[] args) {
int x=3;
if(x==3) {
System.out.println("x는 3이군요.");
}
System.out.println("이부분은 무조건 실행됩니다.");
}
}
//p.47_2
class IfTest2 {
public static void main(String[] args) {
int x = 2;
if(x==3) {
System.out.println("x는 3이군요.");
}
else {
System.out.println("x는 3이 아니군요.");
}
System.out.println("이부분은 무조건 실행됩니다.");
}
}
//p.47
public class DooBee {
public static void main(String[] args) {
int x = 1;
while (x<3) {
System.out.print("Doo");
System.out.print("Bee");
x++;
}
if(x==3) {
System.out.print("Do");
}
}
}
//p.48 (개선해보자)
public class BeerSong {
public static void main(String[] args) {
int beerNum = 99;
String word = "bottles";
while (beerNum > 0) {
if(beerNum == 1) {
word = "bottle";
}
System.out.println(beerNum + " " + word + " of beer on the wall");
System.out.println(beerNum + " " + word + " of beer.");
System.out.println("Take one down.");
System.out.println("Pass it around.");
beerNum--;
if(beerNum > 0) {
System.out.println(beerNum + " " + word + " of beer on the wall");
}
else {
System.out.println("No more borrles of beer the wall");
}
}
}
}
//p.50
public class PhraseOMatic {
public static void main(String[] args) {
String[] wordListOne = {"24/7","multi-Tier","30,000 foot","B-to-B", "win-win",
"front-end","web-based","pervasive","smart","six-sigma","critical-path",
"dynamic"};
String[] wordListTwo = {"empowered","sticky","valued-added","oriented","centric","distributed",
"clustered","branded","outside-the-box","positioned","networded","focused","leveraged",
"aligned","targeted","shared","cooperative","accelerated"};
String[] wordListThree = {"process","tipping-point","solution","architecture","core competency",
"strategy","mindshare","portal","space","vision","paradigm","mission"};
int oneLength = wordListOne.length;
int twoLength = wordListTwo.length;
int threeLength = wordListThree.length;
int rand1 = (int) (Math.random() * oneLength);
int rand2 = (int) (Math.random() * twoLength);
int rand3 = (int) (Math.random() * threeLength);
String phrase=wordListOne[rand1] + " " + wordListTwo[rand2] + " " + wordListThree[rand3];
System.out.println("What we need is a " + phrase);
}
}
//p.54
class Shuffle1 {
public static void main(String[] args) {
int x = 3;
while (x>0) {
if(x>2) {
System.out.print("a");
}
x--;
System.out.print("-");
if(x==2) {
System.out.print("b c");
}
if(x==1) {
System.out.print("d");
x--;
}
}
}
}