변수

클래스내에 선언한 변수
    1. static 인 변수   (클래스 변수)   ===> 전역변수
    2. static이 아닌 변수 (인스턴스 변수)

전역변수 static
    : 전역변수는 초기화하지 않으면 디폴트값이 들어간다.

지역변수 (local variable, automatic variable)
    :  메소드나 블럭 내부에서 선언된 변수
       지역변수는 반드시 초기값을 주고 사용해야 한다.

연산자

증감 연산자

c++;    ==>  c=c+1;
d--;     ==>  d=d-1;

float e =8.6f;
System.out.println(e++);          //8.6
System.out.println(e);              //9.6
>++이 뒤에 왔기 때문에 e를 출력한 후 연산을 진행한다.

double e =9.7;
System.out.println(--e);            //8.7
System.out.println(e);              //8.7
>연산을 하고 출력을 하였기 때문에 동일한 값이 나온다.

int x=10;
int y=x++;
System.out.println(x);     //11
System.out.println(y);     //10

비트 연산자

비트반전
int m = 42;         // 42   =    00000000 00000000 00000000 00101010
int n = ~m;        // ~42 =    11111111 11111111 11111111 11010101

                                    -1*2^31+1*2^30+1*2^29 . . . . . 
                                    비트에 1이 계속 반복되면 1이 끝나는 점까지 계산 안한다. 그리고는 -2^6+2^4+2^2+1 = -43

/*
00000000 00000000 00000000 00101010
*/
System.out.println(42<<2);      //168
System.out.println(42>>2);      //10
System.out.println(42>>>2);    //10


/*
shift 연산자
1) << : 왼쪽으로 비트수 만큼 이동한다.
오른쪽에 남은 빈칸은 0으로 채운다.
2) >> : 오른쪽으로 비트수 만큼 이동한다.
왼쪽에 남은 빈칸은 부호비트로 채운다.
3) >>> : 오른쪽으로 비트수만큼 이동한다.
왼쪽에 남은 빈칸은 무조건 0으로 채운다.
*/

음수값을 비트로 표현하는 방법
1) 먼저 양수의 값을 비트로 변환해본다.
      8  :  00000000 00000000 00000000 00001000
2) 1의 보수를 구한다. (비트반전)
     1 -> 0, 0->1 로 바꾼다.
3) 2의 보수를 구한다. (1의 보수값에 더하기 1을 한다.)
    11111111 11111111 11111111 11111111 11111000 => -8

tip) 1. 먼저 양수값의 비트를 구한다.
     2. 양수값의 하위 비트에서 첫 번째 1을 만날때 까지는 양수와 동일하게 첫번째 1을 만난 상위비트는 비트 반전을 한다.

java.lang.Integer클래스의 메소드
정수값을 2진수 문자열로 변환해주는 메소드 toBinaryString(정수); 가 있다.

/*
비트로 바꾸어 연산을 한다.
1) & (And 연산) : 두 비트가 1일 경우만 1. 나머지는 0
2) | (Or 연산) : 두 비트 중 1개라도 1이면 1
3) ^ (Xor연산) : 두 비트가 서로 다르면 1 같은면 0
*/


비교 연산자

등가 연산자는 기본 자료형에서 사용되면 값이 같은지를 물어 같으면 true 다르면 false
참조 유형에서 사용되면 가리키는 주소값이 같은지를 묻는다.

논리 연산자

/*
1) & : 피 연산자가 둘다 true일 경우만 true
2) | : 피 연산자 중 하나라도 true면 true

3) && : 앞의 연산으로 결과를 알 수 있을 경우, 뒤의 연산은 수행하지 않음 즉 앞의 연산결과가 false이면 뒤의 연산을 생략한다.
   || : 역시 앞의 연산결과를 알 경우 뒤의 연산을 수행하지 않음 앞의 연산 결과가 true이면 뒤의 연산을 생략함
*/

		int i = 1;
		int j= i++; //j=1 , i=2

		if((i>++j) && (i++ == j)){
			i=i+j;
		}

		System.out.println(i); // i = 2
        // & 한 개짜리로 진행하면 확인하는 상황에서 진행되기 때문에 i=3 이 나온다.

		int m=0;
		int n=1;

		if((m++ == 0 ) | (n++ == 2))
			m =42;
		System.out.println(m); // m=42
		System.out.println(n); // n=2
        // m=42 가 나오고 | 이기 때문에 뒤에도 확인한다. 따라서 n=2
        
       		boolean r= false;
		boolean e= false;
		boolean w= ((r=true)||(e=true));
		System.out.println(r);
		System.out.println(e);
		System.out.println(w);		// true false true 이다.

Scanner

Scanner 객체를 불러와서 사용해준다음에
객체를 닫아준다.

import java.util.Scanner;

public class ScannerEx
{
	public static void main(String[] args) 
	{
		System.out.println("이름, 도시, 나이, 체중, 독신 여부를 빈칸으로 분리하여 입력하세요");
		Scanner sc = new Scanner(System.in);

		String name = sc.next();
		System.out.print("이름은 "+name+","); //문자열 읽기

		String city = sc.next();
		System.out.print("도시는 "+city+",");

		int age = sc.nextInt();
		System.out.print("나이는 "+age+"살,"); //정수 읽기

		double weight = sc.nextDouble();
		System.out.print("체중은 "+weight+"kg, "); //실수 읽기

		boolean isSingle = sc.nextBoolean();
		System.out.println("독신 여부는 "+isSingle+"입니다."); //논리값 읽기

		sc.close();
	}
}

 

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

테이블 태그

<table></table>

<tr></tr> 행
tr 태그 하위에는 <td> 또는 <th> 태그를 둘 수 있다.
테이블의 제목으로 사용코자 할 때는 th(table header) 태그를 이용한다.
<td></td> 테이블 데이터, 열
<caption>태그 표 밖에 표에 설명이 들어간다.

	<table border="1" width="50%">
	<tr>
	<td>1,1</td><td>1,2</td><td>1,3</td>
	</tr>
	<tr>
	<td>2,1</td><td>2,2</td><td>2,3</td>	
	</tr>
	<tr>
	<td>3,1</td><td>3,2</td><td>3,3</td>	
	</tr>
	<tr>
	<td>4,1</td><td>4,2</td><td>4,3</td>	
	</tr>
	</table>

cellspacing : 셀과 셀사이 간격
cellpadding : 셀의 안쪽 여백

html5 에서는 align, bgcolor, border, cellpadding, cellspacing, width 등이 없어지고 대신 css를 이용하여 이러한 속성을 줄 수 있다.

열병합을 할때는
colspan을 사용한다
행병합은 
rowspan을 이용한다.

<table border="1" width="300" height="300">
	<tr>
	<td colspan="2">1,1</td>
	<!--<td>1,2</td>--><td rowspan="2">1,3</td>	
	</tr>
	<tr>
	<td>2,1</td><td>2,2</td>	
	</tr>
	<tr>
	<td>3,1</td><td colspan="2">3,2</td>
	</tr>
</table>

 

+ Recent posts