java 2일 차. 변수

KHLee·2023년 2월 23일

자바수업

목록 보기
1/46

이클립스 아이콘 크기 키우기

https://mi2mic.tistory.com/219


브라우저에서 다음 화면을 클릭하려고 했을 때, 왼쪽 하단에 링크가 나오고, 누르게 되면 quics에 요청을 한다. 요청을 하면 웹서버에서 페이지를 만들고 브라우저로 내려 보내준다.

멀티쓰레드는 크롬 한 탭에서 네 명을 받는 것이라 보면 되고,
크롬을 네 개 키면 여러 프로세스가 동시에 진행이 되기 때문에 느려진다.(메모리, cpu를 많이 사용함). 따라서 멀티쓰레드 지원은 프로세스 처리가 빨라짐.
분산처리 지원은 java에서 처리를 할 수 있는 범위가 아니라고 함.(?)


package day02;
public class p55 {
	public static void main(String[] args) {
		int a = 2000000000;
		int b = 2000000000;
		long A = a;
		long B = b;
		long result = (long)a + (long)b;//A + B;
		System.out.println(result);
	}
}

a를 long A로 형변환을 하는 방법이 있고, long result를 계산할 때, (long)a로 형변환을 하는 방법이 있다.


package variable;

public class P54 {
//ctrl space : 자동완성
	public static void main(String[] args) {
		//boolean
		boolean b1 = true;
		boolean b2 = 10 > 5;
		
		//정수
		int n1 = 10;
			//long n2 = 200000000000;
			//정수의 기본형은 int. 오른쪽은 int. 따라서 오류.
		long n2 = 200000000000L;
			//long n2 = 0L; n2 = 2222222222L;
			//(데이터베이스에서 카운트 된 것을 받아올 것)
		
		//실수
		double d1 = 1.0;
			//float f1 = 1.0;
			//실수의 기본형은 double. 따라서 오류.
		float f1 = 1.0f;
		double d2 = 1/2;
			//0.5가 안나와? 정수끼리 연산한 1/2는 int로 계산이 된다.
		System.out.println(d2);
		
		double d3 = 10.0/3.0;
		System.out.println(d3);
		
		float f2 = 10.0F/3.0F;
		System.out.println(f2);
		//double보다는 짧다. 그리고 오른쪽 연산에도 F를 붙여줘야 함.

		//char
		char c1 = 'A';
		System.out.println(c1);
			//c1이 메모리에 들어갈 땐 65로 들어감.
		char c2 = 65;//알파벳 대문자 A는 65. 국제표준임.
		System.out.println(c2);
		
		int n3 = 10;
		double n4 = 10.0;
			//int result = n3 + n4;
			//n4가 double이라서 오류. 또한 n4를 int로 바꾸기엔 리스크가 있음.
		double result2 = n3 + n4;//왜 노랗게 떠? -> 변수를 선언하고 안써서!
	}

}


package variable;

public class P64 {

	public static void main(String[] args) {
		int a = 10;
		double d = 10.2355;
			//int와 double은 기본자료형
		String str1 = "abc";
		String str2 = "abc";
		str1 = "def";//이 경우 abc값이 사라지는 것이 아니라
					 //def가 새로 생기고 str1이 그 값을 가리키게 됨
			//레퍼런스타입이다.(참조자료형), 그래서 색이 다름.
		
		System.out.printf("%d\t%4.2f\t%s\n",a,d,str1);
			//출력되는 형식이 먼저 나오고 뒤에는 순서대로 넣어라
			//package에서 propreties에서 체크한 후 버전 맞춰주기!
			//printf에서 %f는 전체자리수 4. 소수점 2에서 반올림이다.
			//전체자리수는 별 의미가 없고 앞이 두자리인데 전체자리수 4를 주면 빈공간으로 둔다.
			//\t를 통해 출력을 해보면 간격이 넓어짐.
			//\t는 일정간격 떨어트려줌 \n은 줄바꿈
		
		if(str1 == str2) {
			//str1과 str2의 주소값을 비교. 공부할때만 씀.
			System.out.println("OK");
		}
		if(str1.equals(str2)) {//equals는 실제 string과 string을 비교
			System.out.println("OOK");
		}
		
		String str3 = new String("abc");
		String str4 = new String("abc");
		
		if(str3 == str4) {
			//new로 생성하면 스트링풀이 아닌 다른 곳에 각각 저장이 된다.
			//따라서 ==로 비교 시 주소값이 다름. equals는 문자열을 비교하기 때문에 같음.
			System.out.println("oook");
		}
		if(str3.equals(str4)) {
			System.out.println("ooook");
		}
			//str은 그냥 문자열을 넣어도 되지만 new로 만들 수도 있다.
			//String은 내용 변경이 불가능하다.(객체내 값 변경 불가능)
			//리터럴을 바로 입력한 데이터는 하나의 객체를 공유(주소값 같아짐)
	}

}


package variable;

import java.util.Random;

//java.lang 외의 패키지를 사용할 때, class의 위 package의 아래 import 해줘야 함.
//import 없이 Random을 쓰면 빨간줄이 그어지고 커서를 올리면 import할래? 나옴
//ctrl shift o로 import 가능.
//ctrl shift f 자동정렬.

public class P68 {

	public static void main(String[] args) {
		//String s1 = 10;//타입을 바꾸라고 함.
		String s1 = "10";
		int s2 = Integer.parseInt(s1);
		int a = 10;
		
		System.out.println(s1+10);
		System.out.println(s2+a);//s1을 형변환하여 s2에 넣어 계산.
			//string과 일반타입을 더하면 오른쪽 식을 강제로 string으로 바꿈.
		//System.out.println(s1-10);//안돼. +만 concat으로 인식
		
		int n1 = 10;
		String n2 = String.valueOf(n1);//parseInt나 valueOf는 API. 잘 이용하자!
									   //어떤 API인지는 드래그하고 f3 또는 자바 사전
									   //java.lang API말고 다른 API는 import필요.
		//String n2 = n1;//안돼
		//String n2 = n1+"";//string을 더하면 string이 된다.
		
		Random r = new Random();
		int rndNum = r.nextInt(10)+1;//0-9까지 10은 미포함, +1하면 1-10까지
		System.out.println(rndNum);
	}

}
package variable;

public class P69 {

	public static void main(String[] args) {
		String str = "abcdef";
		str = str.toUpperCase();
		System.out.println(str);
		
		String str2 = str.replace('A', 'Z');
		System.out.println(str2);
		//str. .을 찍게 되면 주소를 갖고 무엇을 할 것이다를 표현하게 되는 것

		int lng = str.length();
		System.out.println(lng);

		int t = str.indexOf("B");
		System.out.println(t);
		
		char c = str.charAt(0);
		System.out.println(c);
		
		String str3 = str.substring(1, 3);
		System.out.println(str3);

		String email = "jmjmj@jonojon.com";
		String id = "";
		String domain = "";
		id = email.substring(0, 5);
		domain = email.substring(6, 17);
		
		System.out.printf("%s, %s",id, domain);
	}

}
package variable;

import java.util.Scanner;

public class P73 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("명령어를 입력 하시오(q,i,d,s)");
		String cmd = sc.next();
		System.out.printf("%s를 입력했습니다", cmd);
		sc.close();//OS에 파이프가 꽃혀있는 상태에서 close를 통해 잘 닫아줘야한다. 안닫으면 OS과부하로 죽음.
	}

}
package variable;

import java.util.Random;
import java.util.Scanner;

public class P74 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("숫자를 입력 하십시오(10~100)");
		String cmd = sc.next();
		//10~100사이의 정수를 입력 받는다.
		//1투어 입력 받은 숫자 까지의 범위에서 랜덤한 숫자를 발생하시오.
		
		int cmd2 = Integer.valueOf(cmd);
		Random r = new Random();
		int rndNum = r.nextInt(cmd2)+1; 
		System.out.println(rndNum);
		

		sc.close();//OS에 파이프가 꽃혀있는 상태에서 close를 통해 잘 닫아줘야한다.
	}

}
package variable;

import java.util.Random;
import java.util.Scanner;

public class P75 {

	public static void main(String[] args) {
		int a = 10;
		int b = 10;
		//a++;//a+1보다 빠르게 진행이 된다.(증감연산자)
		//++b;
		//System.out.printf("%d, %d\n", a,b);
		
		int result = ++a + b++;//b는 이 라인이 끝나고 나서 11로 변경됨. 현재까지는 10.
		System.out.printf("%d, %d\n", a,b);//11, 11 출력
		System.out.println(result);//21 출력

		System.out.println( 5 == 5);
		
		int aa = 10;
		int bb = 10;
		
		System.out.println( (aa++ >= 0) || (bb++ >= 0));
		//|| 또한 or인데 앞부분이 참이기 때문에 뒤에는 연산을 안한다.
		//| 은 둘다 연산은 완료한다. 일반적으로 ||으로 쓰지만 뒷값을 반드시 증가시켜줘야할 경우 |를 쓴다.
		System.out.printf("%d, %d\n", aa,bb);

	}

}
package variable;

public class P78 {

	public static void main(String[] args) {
		int a = 10;
		//a = a + 1;//a + 1 이라는 연산 부분을 만났을 때, CPU가 돌아가기 시작하고 2진수로 변환하여 연산하고 값을 돌려줌.
		a = --a + 1;//(a - 1) + 1 과 같은 연산이지만 증감 연산자가 더 빠르게 진행이 된다.
		System.out.println(a);
		
		int b = 20;
		b += 1;
		//b = b + 1;
		
	}

}
package variable;

public class P79 {

	public static void main(String[] args) {
		//int a;
		//System.out.println(a);
		//변수를 선언하고 사용했는데 빨간줄이다? 지역변수 a가 초기화가 안되었다는 오류 발생.
		//수정을 누르면 int a; 에서 int a = 0;으로 변경시켜줌.
		
		int credit = 900;
		String grade = "";
		if (credit >= 800) {
			grade = "High";
		}else {
			grade = "Low";
		}
		System.out.println(grade);
	}

}
package variable;

public class P80 {

	public static void main(String[] args) {

		int credit = 900;
		String grade = (credit >= 800) ? "High" : "Low";//P79를 삼항연산자로 바꿈. 긴 코드를 짧게 할 수 있음.
		System.out.println(grade);
	}

}
package variable;

import java.util.Scanner;

public class P81 {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		System.out.println("숫자를 입력하세요");
		int num = sc.nextInt();
			//int num = Integer.parseInt(sc.next()); //이렇게도 받을 수 있다.
		System.out.printf("%d를 입력하였습니다\n", num);
		String result = (num > 0) ? "정상" : "비정상";
		System.out.println(result);
		sc.close();
	}

}

이상 변수 관련 강의

profile
안녕하세요

0개의 댓글