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 |