자바 61

스택, 힙, equals(), ==

스택변수 설정 ('변수=주소값'으로. 주소값에 대한 값은 힙에 있음)String str = 100;String str = new String(~~); → 힙에 새로운 공간 생김  힙주소값 저장100: skjdfhkasjdflsnew라는 키워드가 있으면 힙에 저장 기본데이터타입은 스택에 저장. (byte, short, int, long, float, double, char, boolean)참조데이터타입은 힙에 저장. (String, 배열, 클래스, 인터페이스 등)  힙 영역의 데이터들은 가비지컬렉터가 (지금 사용중인 변수들 말고) 오래된 데이터들을 버림(그 기준은 모름. 개발자가 컨트롤 x)   값을 비교할 때는 .equals() 사용주소값을 비교할 때는 == 사용 int[] arr = new int[5]..

자바 2024.07.10

for문 break, continue

continue: 해당 루프만 종료 System.out.println("2-9 입력:");int n=sc.nextInt(); for(int i=2;i- 구구단 코드인데 continue를 쓰게 되면 n단만 제외하고 나머지는 다 출력됩니다.     break: 반복문 자체를 종료System.out.println("2-9 입력:");int n=sc.nextInt();for(int i=2;i- break를 쓰게 되면 n단 이후의 모든 것들이 다 종료됩니다.n단 전까지만 출력   for(int j=0;j만약 이중for문에서 두번째 for문 안에 break를 쓰게 되면 두번째 for문만 반복문을 중단합니다.  전체 break를 하고싶다면 아래 두가지 방법이 있는데for(int j=0;j첫번째 방법은 어렵고 복잡합..

자바 2024.07.09

시와 분을 입력받고 30분 뒤, 30분 전 시간 출력하는 예제

public void method8() { //시와 분을 입력받고 30분 전에 시간을 출력하세요. System.out.println("시: "); int hour = sc.nextInt(); System.out.println("분: "); int min = sc.nextInt(); min-=30; if(minpublic void method7() { //시와 분을 입력받고 30분 뒤에 시간을 출력하세요. System.out.println("시: "); int hour = sc.nextInt(); System.out.println("분: "); int min = sc.nextInt(); min+=30; if(min>=60) { min-=60; ..

자바 2024.07.05

대문자 소문자로 바꾸기 예제

import java.util.Scanner;public class test { Scanner sc = new Scanner(System.in); public static void main(String[] args) { test obj = new test(); obj.process(); } public void process() { method1(); } public void method1() { // scanner를 통해 대문자 입력받고 소문자로 변환 System.out.println("대문자 입력받고 소문자로 변환"); while (true) { System.out.println("대문자 입력: "); String str = sc.next(); String result = "";..

자바 2024.07.03

String 타입 변환

1. 다른 타입 -> String타입으로 변환int i = 20;String s = ""+i;String s2 = String.valueOf(i);두가지 방법이 있는데,""+anyType을 하는 방법이랑 valueOf를 사용하는 방법이 있습니다.  2. String 타입 -> 다른 타입으로 변환String s2 = "10";byte b1 = Byte.valueOf(s2);short sh = Short.parseShort(s2);int i2 = Integer.valueOf(s2);long l1 = Long.valueOf(s2);float f1 = Float.valueOf(s2);String s3 = "true";boolean bl1=Boolean.valueOf(s2);valueOf로 이용하는 방법과 par..

자바 2024.07.03

templates 설정

아래와 같은 코드를 template으로 설정하고 싶으면, Scanner sc = new Scanner(System.in); public static void main(String[] args) { ScannerExample obj = new ScannerExample(); obj.process(); } public void process() { } window - preferences JAVA - Editor - Templates - New 클릭 아까 템플릿으로 만들고자 하는 소스 코드를 복사해서 Pattern에 붙여넣습니다.클래스이름(ScannerExample) 지우고 insert variable 클릭해서 enclosing_type클릭enclosing_type: 내가 설정한 클래스이름으로..

자바 2024.07.03

date.getTime()으로 시간 구하기

Date date= new Date();long time = date.getTime();time은 1970년 1월 1일 00시부터 지난 시간을 ms단위로 출력됩니다. 그래서 1970년 1월 1일부터 몇 년, 며칠, 몇시간, 몇 분, 몇 초가 지났는지를 구하기 위해서는time에 365일을 ms단위로 나타낸 값으로 나누었을 때 몫을 year에 넣고 그 나머지값을 24시간을 ms단위로 나타낸 값으로 나누었을 때 몫을 day에 넣고그 나머지값을 1시간을 ms단위로 나타낸 값으로 나누었을 때 몫을 hour에 넣고그 나머지값을 60분을 ms단위로 나타낸 값으로 나누었을 때 몫을 min에 넣고 그 나머지값을 60초를 ms단위로 나타낸 값으로 나누었을 때 몫을 sec에 넣으면 됩니다. package kr.or.ddit..

자바 2024.07.02

데이터 타입

1. 정수형- byte : 1byte (-128 ~ 127)- short : 2byte (-32768 ~ 32767)- int : 4byte (-2^31 ~ 2^31-1)- long : 8byte (-2^31 ~ 2^31-1) bytebyte b1 = 127;byte b2 = 128; //에러사용범위를 벗어난 경우 컴파일 에러가 발생합니다. shortshort s1 = 11111;short s2 = s1+10; // 에러short s3 = (short)(s1+10);두번째줄은 에러가 나는데, int가 기본형이기 때문에 s1+10의 타입은 int가 됩니다.근데 메모리가 더 큰 int (s1+10)를 int보다 작은 short (s2)에 담을 수 없기 때문에 에러가 납니다.그래서 세번째줄처럼 (short..

자바 2024.07.02

eclipse 설정

프로젝트 생성ctrl+n -> java project 클릭 (예: JAVA) 패키지 생성src - ctrl+n -> package클릭NAME은 웹사이트 주소를 거꾸로 설정합니다.(naver.com면 com.naver로 설정)(예: kr.or.ddit 하면 workspace/JAVA/src/kr/or/ddit 폴더가 생성됨) kr.or.ddit클릭하고 study01, study02 패키지 생성 프로젝트 위에 점 세개 있는 거 누르면 저런 창이 뜹니다.폴더 형식으로 보기 편하게 hierarchical로 설정   클래스 생성main입력하고 ctrl+space+enter하면 자동으로 void main이 나옵니다.(ctrl+space는 자동완성 단축키)sysout 입력 후 ctrl+space 하면 System.o..

자바 2024.07.01