📌Back-End/Java

Java 변수와 자료형

구 일 2024. 4. 16. 23:27
728x90
반응형

변수

데이터를 저장하는 메모리 공간에 붙여준 이름

int age = 30;
String name = "김철수";

 

int -> 데이터 타입, age -> 변수, 30 -> 값

String -> 데이터 타입, name -> 변수, "김철수" -> 값

 

변수 이름 규칙

  • 문자와 숫자, _, $ 사용 가능
  • 숫자로 시작 X
  • 대문자와 소문자 구분
  • 공백 사용 X
  • 미리 예약된 이름 사용 X

 

표기법

1. 카멜 표기법 (camelCase)

- 가장 앞의 문자는 소문자로, 나머지 단어의 첫 문자는 대문자로 표기

ex) userName, jobName, productNumber

 

2. 파스칼 표기법 (PascalCase)

- 각 문자의 첫 문자를 대문자로 표기

ex) UserInfo, UserHistory, HomeController

 

자료형 (Data Type)

변수의 종류, 단위

  • 숫자 (Number)
  • 부울 (Boolean)
  • 문자 (Character)
  • 문자열 (String)

변수의 종류에 따라 담을 수 있는 데이터의 타입과 크기가 다름

 

자료형 - 숫자 (Number)

숫자 형태의 자료형 - 정수 / 실수 / 2진수, 8진수, 16진수

ex) int age = 20;, long money = 100000L; double taxRate = 0.5;

 

자료형 - 부울 (Boolean)

참과 거짓을 나타내는 자료형

ex) boolean pass = true;, boolean isEmpty = false;

 

자료형 - 문자 (Character)

한 개의 문자 표현에 사용하는 자료형

ex) char inputChar = 'a';, char grade = 'f';

 

// [===== 자료형 - 숫자 =====]

int age = 10; // int 기본타입
Integer.MIN_VALUE // int 타입의 최소값 -2147483648
                  // 대문자 스네이크 표기법 (상수 = 변하지 않는 값)
                  
long money = 10000000L; // long 타입
float taxRate = 0.25f; // 값 뒤에 f를 꼭 붙여야 한다. 안 붙이면 double 타입
double rate = 0.5;

// [===== 자료형 - 부울 =====]
boolean isPass = true;
boolean isOK = false;
System.out.println(isPass)// true출력

// [===== 자료형 - 문자 =====]
char inputKey = 'a'; // char 타입
System.out.println((int) keyFirst); // int로 형변환한 a값 97 출력 (아스키 코드 값)

 

 

자료형 - 문자열 (String)

문자들로 이루어진 집합

String name = "박명수";
String email = "park@gmail.com";

 

문자열 메소드

ex) equals, indexOf, replace, substring, toUpperCase, ...

 

 

자료형 - StringBuffer

문자열을 자주 추가하거나 변경할 때 사용하는 자료형

StringBuffer sb = new StringBuffer("Hello");

 

StringBuffer 메소드

ex) append, insert, substring

 

 

자료형 - 배열 (Array)

많은 수의 데이터를 담을 수 있는 자료형

int[] ageArray = {1, 2, 3, 4, 5};
char[] inputKey = {'a', 'c', 'e'};

 

// [===== 자료형 - 문자열 =====]

String str = "Hello World!";
System.out.println(str); // Hello Wolrd!

// 메소드
// equals() : 값 비교
String productName = "안경";
String searchData = "안경";
System.out.println(searchData.equals(productName)); // true

// indexOf() : 해당 값의 index 반환 (index는 0부터 시작)
String s1 = "Hello";
System.out.println(s1.indexOf("H")); // 0

// replace() : target 값을 replacement로 교체
String inputData = "aatabb";
String result = inputData.replace("a", "A");
System.out.println(result); // AAtAbb

// substring()
String s2 = "Hello!";
System.out.println(s2.substring(4)); // o! -> beginindex
System.out.println(s2.substring(0, 2)); // He -> beginindex, endindex (0 ~ 1) endindex 전 까지

// toUpperCase() : 대문자로 반환
System.out.println(s2.toUpperCase()); // HELLO!


// [===== 자료형 - 배열 =====]

int[] ages = {10, 11, 50, 40, 20};
System.out.println(ages[0]); // 10

int[] inputData1 = new int[3];
inputData1[0] = 5;
inputData1[1] = 10;
inputData1[2] = 15;

String[] inputData2 = {"name", "gender", "email"};

 

자료형 - 리스트 (List)

배열과 같이 여러 데이터를 담을 수 있는 자료형

ArrayList list = new ArrayList();
list.add(1);
list.add(2);

추가로 여러가지 메소드를 제공

리스트 메소드

ex) add, get, size, remove, clear, sort, contains

 

 

자료형 - 맵 (Map)

key, value 형태로 데이터를 저장하는 자료형

HashMap<String, Integer> map = new HashMap<>();
map.put("apple", 1000);
map.put("orange", 2000);

맵 메소드

ex) put, get, size, remove, containsKey

 

 

자료형 - 제네릭스 (Generics)

자료형을 명시적으로 지정

제한적일수 있지만 안정성을 높여주고 형변환을 줄여줌

ArrayList<String> list = new ArrayList<>();
HashMap<String, Integer> map = new HashMap<>();

 

// [===== 자료형 - 리스트 =====]

ArrayList list = new ArrayList();

// add() : 데이터 추가
list.add(1);
list.add(2);
list.add(3);

System.out.println(list); // [1, 2, 3]

// get() : 해당 값 반환
System.out.println(list.get(0)); // 1

// size() : 리스트 크기 반환
System.out.println(list.size()); // 3

// remove() : 해당 index 값 삭제
System.out.println(list.remove(0)); 1
System.out.println(list); // [2, 3]

// clear() : 리스트 초기화
list.clear();
System.out.println(list); // []

// sort() : 정렬
ArrayList ages = new ArrayList();
ages.add(10);
ages.add(40);
ages.add(20);
ages.add(50);
ages.sort(Comparator.naturalOrder()); // 오름차순
System.out.println(ages); // [10, 20, 40, 50]
ages.sort(Comparator.reverseOrder()); // 내림차순
System.out.println(ages); // [50, 40, 20, 10]

// contains() : 해당 값이 존재하는지 여부 확인
System.out.println(ages.contains(10)); // true
System.out.println(ages.contains(60)); // false


// [===== 맵 =====]
HashMap map = new HashMap();

// put() : 데이터 추가
map.put("apple", 1000);
map.put("orange", 5000);
System.out.println(map); // {apple=1000, orange=5000}
						 // key와 value 쌍으로 출력. 순서는 보장하지 않는다.
        
// get() : 데이터 값 반환
System.out.println(map.get("apple")); // 1000
System.out.println(map.get("name")); // null

// size() : 맵 크기 반환
System.out.println(map.size()); // 2

// remove() : key로 데이터 삭제
System.out.println(map.remove("apple")); // 1000
System.out.println(map.remove("김철수")); // null
System.out.println(map); // {orange=5000}

// containsKey : 해당 key가 존재하는지 확인
System.out.println(map.containsKey("apple")); // true
System.out.println(map.containsKey("orange")); // false


// [===== Generics =====]

ArrayList list2 = new ArrayList();
list2.add(1000);
list2.add("Java");
System.out.println(list2); // [1000, Java]

ArrayList<String> names = new ArrayList<>();
// names.add(1000); // String 타입만 가능하기 때문에 1000은 넣을 수 없다.
names.add("유재석");
System.out.println(names); [유재석]

HashMap<String, Integer> productAndPrice = new HashMap<>();
// productAndPrice.put(1000, 2.5); // String, Integer만 들어올 수 있기 때문에 데이터 추가 불가능
productAndPrice.put("orange", 2000);
productAndPrice.put("apple", 10000);
System.out.println(productAndPrice); // {orange=2000, apple=10000}

 

728x90
반응형