Boolean 논리형 변수


참 또는 거짓일 수 있는 논리 값을 나타내는 데이터 유형

Boolean 자료형의 값에는 참/거짓 딱 2가지만이 있습니다.

 

boolean isSunny = true;
boolean isWarm = true;

boolean isperfectDay = isSunny && isWarm;
boolean is Beverage = isSunny || isWarm;
boolean isNotSunny = !isSunny;
public class OperatorExample {
	public static void main(String[] args){
    	int charcode = 'A';
        if ((charCode >=65) & (charCode <= 90)) {
        	System.out.println("대문자군요.");}
        if ((charCode >=97) && (charCode <= 122)) {
        	System.out.println("소문자군요.");}
        if ((charCode >=48) && (charCode <= 57)) {
        	System.out.println("소문자군요.");}
        
        int value = 6;
        if ((value % 2 == 0) | (value % 3 == 0)) {
        	system.out.println("2 또는 3의 배수군요.");}
       	if ((value % 2 == 0) || (value % 3 == 0)){
        	System.out.println("2 또는 3의 배수군요");}
            }
       }

 

/* 논리 자료형
*boolean(참과 거짓) 이라는 자료형으로 isTrue라는 이름의 변수를 선언
* boolean isTrue;
* true(참과 false(거짓)을 저장하는 자료형
*/

boolean b1 = 10 > 5; // true
boolean b2 = 20 == 10; //false

System.out.println("논리 자료형");
System.out.println(b1);
System.out.println(b2);

 

Char 문자형 변수


char은 character의 약자로 정수, 문자 1개를 저장하는 자료형입니다.

//char 자료형 + 자료이름 + 값
char character = 'c';
/*
* 문자 자료형
* char(2)
* 문자 하나를 담을 수 있는 자료형
* 자바는 2바이트의 유니코드로 표현한다
*/

char ch1 = '죄';
char ch2 = '지';
char ch3 = '원';

System.out.println("문자 자료형");
System.out.println(ch1);
System.out.println(ch2);
System.out.println(ch3);
System.out.println(ch1+ch2+ch3);

출력결과: 최지원

String 문자형 변수


String은 int 와 char과 달리 기본형이 아닌 참조형 변수로 분류된다.

자료형 키워드 첫글자가 대문자이다.

int age = 35;
String name = "홍길동";
/*문자열
* string(객체)
* 문자열 같은 경우 할당해야할 메모리크기가 너무 가변적이므로 원시타입이 아닌 객체로 변수를 만들어 준다
*
*/

String str1 = "병아리";
String str2 = new String("병아리"); //객체생성방식으로 String 변수를 선언
String str3 = "병아리"+"삐약삐약";
String str4 = new String("병아리"+"삐약삐약");
System.out.println(str1);
System.out.println(str2);
System.out.println(str3);
System.out.println(str4);

//다른 자료형 + 문자열 = 문자열
String str5 = 20 + "병아리" +5 + "살" + "삐약삐약";
System.out.println(str5);

 

byte, short, int, long 자료형 변수


byte, int, long, long long은 정수(숫자)를 나타낼때 사용됩니다.

/* 정수 자료형
* byte(1) short(2) int(4) long(8)
* 모두 정수를 저장하는 자료형이지만 각 자료형마다 표현할 수 있는 수의 범위가 다름
*
byte by = 10;
short sh = 10;
int in = 10;
long lo = 10;
*/
System.out.println("정수 자료형");
System.out.println(by + "," + sh + "," +in+","+lo);
/* int라는 자료형으로 num라는 이름의 변수를 선언
* int num;
*
* System.out.println(6+3);
*
* num1, num2 라는 int변수 선언
* int num1;
* int num20;
*
* num1에 10 num2에 20이라는 값을 할당
* num1 = 10;
* num2 = 20;
*
* num1에 있는 값과 num2에 있는 값을 더해서 출력
* System.out.println(num1+num2);
*/

데이트 저장 단위


저장 공간이 제한적이기 때문에 저장 크기에 대한 기준과 CPU가 데이터를 처리할 때 일정한 기준이 필요합니다. 

byte

정수 자료형 중에서도 가장 작은 범위를 가진 자료형.

short

byte 다음으로 작은 자료형. 

int

가장 표현적으로 쓰이는 정수형. 2^32개를 저장할 수 있음

long

long 형을 사용하면 int보다 더 큰 수를 할당할 수 있음

float, double 자료형 변수


실수를 표현하기 위한 자료형입니다. 

 

float


소수점 뒤에 f를 붙여 이 수는 소수임을 알리는 방식으로 소수를 표현합니다.

 

public class Main {
	public static void main(String[] args){
    floay number = 0.001f + 0.001f + 0.0001f;
    System.out.println(number);
    }
}

실행결과:
0.00210000002
/* float(실수)이라는 자료형으로 num2라는 이름의 변수를 선언
* float num2;
* 실수 자료형
* float(4) double (8)
* 모두 실수를 저장하는 자료형이지만 float보다 double이 더 정확한 수를 표현할 수 있다.
*/

float f1 = 4.24f;
double dou = 4.24;

System.out.println("실수 자료형");
System.out.println(f1+","+double);

 

double


double형은 float와는 다르게 f를 붙여주지 않아도 소수점을 표현할 수 있습니다.

이진수의 특성상 표현하지 못하는 손수가 존재해 계산 결과가 부정확합니다.

 

public class Main {
	public static void main(String[] args){
    double number = 0.01 + 0.001 + 0.0001;
    System.out.println(number);
    }
 }
 
 실행 결과:
 0.011099999999

이스케이프 시퀸스


화면상의 어떠한 상황 또는 상태를 표현하기 위해 약속한 문자.

 

문자열 내에서 백스페이스, 탭, 백슬래시, 작은 따옴표 등 코드로 사용되는 특수문자를

표현할 때 사용하는 방식

백스페이스 문자 \b 한 글자 지우기
탭 문자 \t 들여쓰기
백슬래시 문자 \\ 역슬래쉬 보여주기
작은따옴표 문자 \' 작은따옴표 보여주기
큰따옴표 문자 \" 큰따옴표 보여주기
개 행 문자 \n 줄바꿈
캐리지 리턴 문자 \r 현재 줄에서 제일 앞으로 보내기
유니코드 \u 유니코드 표시할 때 사용

 

 

public class SpecialCharEx {
 
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println('\'');
		System.out.println("abc\t123\b456");
		System.out.println('\n');
		System.out.println("\"HelloWorld\"");
		System.out.println("\'HelloWorld\'\n");
		System.out.println("Hello\0World");
		System.out.println("c:\\");
		System.out.println("abcdef\b");
		System.out.println("서쪽\t동쪽");
		System.out.println("가나다\r라마");
		System.out.println("\uAC00, \uAC01, \uAC11");
	}
}​
출력 결과

'
abc 123456

"HelloWorld"
'HelloWorld'

Hello World
c:\
abcdef
서쪽   동쪽
가나다
라마
가, 각, 갑

변수의 초기화


변수를 선언하고 처음으로 값을 되돌리는 것

지역변수(메소드 안 변수)는 반드시 초기화 해야한다.

 

명시적 초기화


변수 선언과 동시에 초기화를 한다. 가장 기본적이고 간단한 초기화 방식이다.

간단하고 명료한 초기화 방법이지만 복잡한 코드엔 적합하지 않다.

Class Car {
	int door = 4; //기본형 변수의 초기화
    Engine e = new Engine(); //참조형 변수의 초기화
}

 

java 내에서 코드의 이름이 겹치면 안된다.

선언 후 초기화

int age;
age = 100;

선언과 동시에 초기화

int age = 100;

초기화 블럭


모든 생성자에서 공통으로 수행되어야 하는 코드에 활용하면 좋다.

 

클래스 초기화 블럭: 클래스변수의 복잡한 초기화에 사용된다. 인스턴스 초기화 블럭 앞에 static을 덧붙인다.

인스턴스 초기화 블럭: 인스턴스변수의 복잡한 초기화에 사용된다.

Class InitBlock {
	static { /* 클래스 초기화 블럭 */ }
    { /* 인스턴스 초기화 블럭 */ }
  } //초기화 블럭 내에서는 메서드처럼 조건문, 반복문, 예외처리구문이 가능하다.

클래스 초기화 블럭


클래스가 메모리에 처음 로딩될 때 한번만 수행된다.

인스턴스 초기화 블럭


생성자와 같이 인스턴스를 생성할 때 마다 수행된다. 생성자보다 인스턴스 초기화 블럭이 먼저 실행된다.

 

//인스턴스 초기화 블럭
{
	count++;
    serialNo = count;
}

//생성자
Car() {
	color = "White";
    gearType = "Auto";
}
Car(String color, String gearType){
	this.color = color;
    this.gearType = gearType;
}
public class SpecialCharEx {
 
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println('\'');
		System.out.println("abc\t123\b456");
		System.out.println('\n');
		System.out.println("\"HelloWorld\"");
		System.out.println("\'HelloWorld\'\n");
		System.out.println("Hello\0World");
		System.out.println("c:\\");
		System.out.println("abcdef\b");
		System.out.println("서쪽\t동쪽");
		System.out.println("가나다\r라마");
		System.out.println("\uAC00, \uAC01, \uAC11");
	}
}​

 

자료형 변환 (boolean 제외)


int num1 = 50;
long num2 = 3147463647L;
System.out.println(num1 + num2);

 

두 피연산자의 자료형이 일치해야 동일한 방법을 적용하여 연산을 진행할 수 있습니다.

피연산자의 자료형이 일치하지 않을 때 형의 변환을 통해 일치를 시켜야 합니다.

/*컴퓨터의 값 처리 원칙

1. 같은 종류 자료형만 대입 가능
2. 같은 종류 자료형만 계산 가능
3. 계산의 결과도 같은 종류의 값이 나와야 함

이러한 원칙이 지켜지지 않은 경우에 형 변환이 필요합니다.
*/

자동 형 변환

1. 자료형의 크기가 큰 방향으로 형 변환이 일어납니다.

2. 자료형의 크기에 상관없이 정수 자료형보다 실수 자료형이 우선됩니다.

 

double num1 = 30;
System.out.println(59L + 34.5);

 

 

강제 형 변환

자동 형 변환 규칙에 부합하지는 않지만, 형 변환이 필요한 상황이면 값이 큰 자료형을 

범위가 작은 자료형으로 변환합니다. 강제 형변환 시 데이터 손실이 발생할 수 있습니다.

//ex1)
double pi = 3.1415;
int wholenumber = (int)pi;

//ex2)
long num1 = 3000000007L;
int num2 = (int)num1;

//ex3)
short num1 = 1;
short num2 = 2;
short num3 = (short)(num1 + num2;)
public static void main(String[] args) {
double pi = 3.1415;
int wholeNumber = (int)pi;

System.out.println(wholeNumber);

long num1 = 30000006L;
int num2 = (int)pi;
System.out.println(num1);
System.out.println(num2);

short num3 = 1;
short num4 = 2;
short num5 = (short)(num3 + num4);
}
}

출력결과:
3
30000006
3

'CS > JAVA' 카테고리의 다른 글

1차원 배열  (0) 2024.01.17
출력 메소드  (0) 2024.01.17
자바 단축키  (0) 2024.01.17
반복문 (for, while)  (0) 2024.01.17
조건문 (if, switch)  (0) 2024.01.15

+ Recent posts