프로그램에서 다양한 종류의 자료의 자료를 표현할 수 있는 값을 변수라고 부르며, 일반적으로 웹 페이지에서 처리하고자 하는 "데이터"에 해당한다.
-String형 변수를 선언하고, 쌍따옴표로 묶인 값을 대입한다.
-빈 문자열이나 공백도 문자열 데이터
String msg = "안녕하세요. 자바"; ->문장을 표현(공백표현)
String blank; = ""; ->빈 문자열 값
String age ="20"; ->숫자값이 쌍따옴표로 묶였다면 문자열이다.
int age = 20;
문자열 데이터의 덧셈
->텍스트문자열 +문자열 => 두 문장을 하나로 합쳐준다
String language = "JA" + "VA";// "JAVA"
-문자열 + 기본자료형
->기본자료형의 데이터가 문자열로 변환되고, 두 문장이 합쳐진다.
int age =10;
String name = "자바학생"
String result = age + name;//10 + "자바학생" = ->"10자바학생"
예시코드 package roh1;
public class roh12 {
public static void main(String[] args) {
String a = "자바";
String b = "학생";
String c = a+b;
System.out.printf("a+b = "+c);
}
}
이렇게 실행했을 때 "자바학생"이라는 결과값이 나온다. 새로운 변수 c를 이용해 나타내면 편하다는 사실을 기억하자.
이러한 코드라면 에러가 발생하게 되는데, final로 이미 선언했기에 그 변수를 바꾸려하면 문제가 발생한다.
사실상 제일 중요한 부분이라고 볼 수 있는 파트다.
사칙연산, 단항연산, 논리연산, 비교연산, 증감 연산자 등이 대표적이다.
사칙연산
사칙연산 같은 경우 크게 신경쓰지않고 본래 아는대로 코드를 작성해 주면 된다. +,-,*,/,%.
마지막 나누기는 조금 생소할 수 있으나
public class Main02 {
public static void main(String[] args) {
int source = 100;
source += 100; //source = source +100; -> 200
source -= 50; //source = source -100; -> 150
source *= 2; //source = source +100; -> 300
source /= 100;//source = source +100; -> 3
source %= 2;//source = source +100; -> 1
System.out.println(source);
}이런식으로 코드만 이해한다면 큰 문제될 것 없는 간단한 연산자이다.
위의 코드같은 경우 위에서 아래로 내려오는 순차적인 계산을 따르므로
모든 연산을 100으로 놓고 각각 계산하는 우를 범하지 않길 바란다.
단항 연산자
단항연산자는 어떤 변수의 값에 대한 계산 결과를 다시 자기 자신에게 대입하고자 하는 경우의 약식 표현이라고 할 수 있다. 코드로 쉽게 표현해보면,
int x = 100;
x = x+5;
-------------->
int x = 100;
x += 5;//같은 표현
이런 형식으로 대입하는 것에 기초하고 있다.
또한 단항 연산자는 모든 사칙연산에 표현가능하다.
->+=,-=,*=,/=,%=
증감연산자
전위표기법과 후위 표기법의 차이에 대해 알면 될 것 같다.
public static void main(String[] args) {
//x1값과 y1값의 결과 확인
int a1 = 100;
int x1 = 1;
int y1 = a1 + x1++;
System.out.println("y1 = " + y1);//y1 = 101
System.out.println("x1 = " + x1);//x1 = 2
System.out.println("----------------");
int a2 = 100;
int x2 = 1;
int y2 = a2 + ++x2;
System.out.println("y2 = " + y2);//y2 = 102
System.out.println("x2 = " + x2);//x2 = 2
}
둘의 코드에서 차이점은 ++의 위치밖에 없다. 첫 문단같은 경우 후위 연산을 따르기에 x가 2가 되는 것은 동일하지만 y와 더할 때 1의 값으로 더해지게 된다. 반면 전위연산은 2라는 값이 이미 저장되고 2와 y값을 더하게 되어 102란 값이 나오게 된다.
논리 연산자
논리연산자의 경우 boolean과 ||,&&에 대해서만 파악하면 반 이상은 왔다고 볼 수 있다.
boolean은 true와 false를 나타내고, ||는 or의 의미, &&은 and의 의미이다.
or은 하나만 만족해도 true지만 and는 둘 모두를 만족해야 true라는 사실을 기억하자.
이 코드를 보자. int의 자료형이 double로 바뀌는 과정임을 보여준다. 이때 더 큰 범위로 자료형이 변경되어 암묵적 형변환이 일어났다.
System.out.println("pi1 = "+pi1);// pi1 = 3.14
System.out.println("pi2 = "+pi2);//pi2 = 3
이 코드는 어떤가? 먼저 D는 문자이기 때문에 double에서 취급하지 않아 날려주고, 3.14그대로 온다. 하지만 int형으로 변환되었을때는 어떤가? 0.14의 값도 같이 날아가 버렸다. 이 과정에서 데이터의 손실이 일어난 것이다. 이것이 명시적 형변환이다.