Java Start
자바의 장점
Java는 exe와 달리 JVM은 어느운영체제이냐에 따라에 구애받지 않고 독립적으로 사용하능하게 해준다.
(운영체제에 독립적)
자바 설치시작!~!>>>
시스템속성-고급시스템- 환경변수 추가
변수이름: JAVA_HOME
변수값: C:\Program Files\Java\jdk1.6.0_31
시스템변수에 Path라는 변수를 편집해준다
%JAVA_HOME%\bin; (기존에 Path는 수정하지 말고 맨앞줄에 추가만해준다.)
java나 javac 도스창에 치고
java-version이 잘 설치되었는지 확인한다.
메모장에 아래와 같이 입력하고
class Test
{
public static void main(String[]args)
{
System.out.println("hello world");
}
}
Test.java로 (모든파일)로 저장해준후
cmd창을 열고 Test.java가 있는 경로로 이동해준후
*d: (D드라이브로 이동)
(dir로 해당파일에 Test.java가 잘 있는지 확인한다)
javac Test.java를 실행해준다. //클래스파일 생성
이상이 없으면 java Test를 쳐서 실행하면 메모장에 출력하고자 하는 //클래스 실행
Hello world가 보인다.
정리:Javac 자바파일.java =>class =>실행
java 자바파일 실행
이클립스를 다운받고 실행해준다.
이클립스 사용하기 >
<폰트조정> window -General - Appearance -Colors and font
<소스코드라인보기> 라인줄 - 오른쪽마우스 -Line number(소스코드라인넘버보기)
실행하기:Run -Run as- java application
System.out.println ->한칸뛰고 출력 vs System.out.print->줄이어서 출력
Sysout 치고 ctrl + 스페이스바 (자동으로 출력라인을 입력해준다)
java는 대문자와 소문자를 다르게 식별한다.(주의) - '_'랑 문자,$(앞에 가능) , 숫자(앞은x)
자료의 Type
byte(1byte) - short(2byte) - int(4byte) - long(8byte) -float(4byte) - double(8)
char(2)
형변환
long타입은 끝에 l을 써줘야 한다. float은 끝에 f를 붙여줘야 한다.
자동형변환 (byte - short - int - long - double)
int에서 byte로 강제형변환(위에 역순은 형변환이 되지 않음)
int pp=10;
byte pp2=(byte)pp;
char는 int로 자동형변환이 가능하다. 따라서 변환시 char를 아스키코드(ex.a->65) 로 자동형변환해준다.
byte r1=10;
byte r2=10;
byte r3=r1+r2; //에러남(r1+r2는 연산이되는 동시에 int형으로 자동으로 변경되기때문에)
따라서 byte r3 = (byte)(r1+r2); //r1+r2전체를 byte로 변환시켜준다.(byte와 short까지만 위와같은 현상이 발생하므로 int형으로 강제변환을 시켜주어야한다.)
자바에서 출력시 연산(숫자)과 연결(문자) 차이
System.out.println(3+4+"입니다"); //7입니다 (우선순위가 자동으로 숫자(int)에 부여되므로 연산)
System.out.println("입니다"+3+4); //입니다34 (우선순위가 자동으로 문자에 부여되므로 연결)
따라서 연산자로 인식하고자 한다면 3+4에 괄호를 써서 우선순위를 숫자에 부여해준다.
변수를 저장할떄
스택/힙/메서드영역이 있다.
int su=10;
int su2=20;
double result=su/su2; ->0.0 int변수두개를 나누므로 int로 변환해주니 0.0
따라서 duble형으로 표현하려면 강제형변환필요 (double)su/su2;
만일 (double)(su/su2)로 하면 똑같이 0.0나옴. 그이유는 괄호안에를 int로 처리해줬기떄문에 0.0으로 이미 셋된상태에서 double을 씌워주니 위와같은 현상이 발생
산술연산 -> + - * /
비교연산 -> < > ,= >= == !=
논리연산 &&(and,그리고) ||(or,또는) !(not,~가 아니다)
&&,&를 and로 사용할 수 있는데 &&는 앞이 F인경우 자동적으로 뒤에값은 계산을 해주지않음
&는 앞에와 뒤를 무조건 계산함. (따라서 효율적으로 &&이 더좋음)
||,|를 or로 사용할 수 있는데 앞이 ||인 T인경우 자동적으로 뒤에값은 계산을 해주지 않음.
|는 앞이 T여도 뒤를 무조건 계산함(따라서 효율적으로 ||이 더좋음)
int x=10;
int z=4;
int z=2;
x*=y+z; //y+z를 먼저 더하고 그값에 x를 곱한다. 60
전위연산 y=++x ->y=11,x=11 / 후위연산 y=x++ ->x=11, y=10 (실행후 11)
int x=10;
int y=++x + x++ + --x + x--;
System.out.println(x,y);
\\Kitri-E00 (공유 PC명)
삼항연산자 -(조건연산자)
int su=10;
int result=(su>=10)? 20:-20;
System.out.println(result);
점수입력받고 총점,평균입력하기
import java.io.*;
public class InputTest {
public static void main(String[] args) throws Exception{
BufferedReader in
=new BufferedReader(new InputStreamReader(System.in));
String name;
int kor;
int eng;
int math;
System.out.println("이름을 입력하세요");
name=in.readLine();
System.out.println("국어점수를 입력하세요");
kor=Integer.parseInt(in.readLine());
System.out.println("영어점수를 입력하세요");
eng=Integer.parseInt(in.readLine());
System.out.println("수학점수를 입력하세요");
math=Integer.parseInt(in.readLine());
int total = kor+eng+math;
double avg=(double)total/3;
System.out.println("이름 국어 영어 수학 총점 평균");
System.out.println("=======================================");
System.out.println(name+" "+kor+" "+eng+" "+math+" "+total+" "+avg);
}
}