본문 바로가기
반응형

Back-End89

Java 예제(1) 문1) 대, 소문자의 갯수를 각각 구하시오char[] ch = { 'T', 'i', 's','t', 'O', 'r', 'Y'}; int low = 0, up = 0; for(int i=0; i='a' && ch[i]='A' && ch[i] 2023. 3. 14.
Java(2) 배열변수선언두가지 방법이 있으나 아래의 대부분 아래의 방법으로 사용한다.String[] str; 배열변수는 참조변수이므로 null로 초기화할 수 있다.String[] str = null; 배열의 생성방법1. 값 목록을 이용int[] numbers = {1, 2, 3}; 방법2. new연산자를 사용 배열변수를 미리 선언한 상태에서는 값목록을 직접 주는 방법이 불가능하기 때문에 new연산자를 사용해야한다. new연산자를 사용하면서 값 목록을주어 초기값을 설정하거나, 값 목록이 없을경우엔 길이만 주어 타입별 초기값으로 초기화할 수 있다.int[] numbers; numbers = new int[] {1, 2, 3}; //--- 또는--- numbers = new int[3]; 다차원 배열의 생성자바에서의 배열.. 2023. 3. 14.
Java(1) JVM 동작 원리 자바 언어로 작성된 프로그램을 실행하기 위한 가상 머신. 이로인해 자바 언어로 작성된 프로그램은 운영체제나 하드웨어와 상관없이 동일한 방식으로 실행될 수 있음. 1. 자바 코드를 바이트 코드로 컴파일 (javac.exe)하여 클래스 파일 형태(.class)로 저장 컴파일 프로그램에서 "컴파일"은 소스 코드를 컴퓨터가 이해할 수 있는 기계어로 번역하는 과정을 의미한다. 컴파일러(Compiler)는 소스 코드를 입력으로 받아 기계어로 변환하고, 이를 목적 파일(Object File)로 저장한다. 이 과정에서 오류가 발생할 경우, 컴파일러가 오류 메시지를 출력하고 컴파일을 중단한다. 자바에서는 소스 코드가 컴파일러에 의해 바이트 코드로 컴파일된다. 바이트 코드는 JVM이 이해할 수 있는 중간.. 2023. 3. 13.
Java 예습 메모리 사용 영역 .java 명령어로 JVM이 구동되면 JVM은 운영체제에서 할당받은 메모리 영역을 구분하여 사용함 메소드 영역 static영역이라고도 함 JVM이 바이트코드 파일(.class)을 읽은 내용이 저장되는 영역 메소드 영역에 저장되는 정보 클래스 정보(멤버 변수의 이름) 변수 정보(데이터타입, 접근제어자 정보) 메소드 정보(메소드이름, 리턴타입, 파라미터, 접근제어자 정보) static변수(정적 멤버 변수, static이 붙은 자료형) final class변수 constant pool(상수풀) : 문자상수, 타입, 필드, 객체참조가 저장됨 메소드 영역에 저장되는 정보는 JVM이 종료될 때 까지 사라지지 않고 고정된 상태로 유지됨 메소드 영역에 있는 것은 어떤곳에서나 접근이 가능해지기 때문에 .. 2023. 3. 11.
Oracle SQL(6) ✅세션 사용자가 오라클 데이터베이스에 접속을 하게 되면 세션이 생성됨 사용자가 데이터베이스를 접속 종료할 때 까지 계속 유지됨 각 세션에는 고유한 SID(Session identifier)와 SERIAL#(serial number)를 가지고 있음 시리얼 번호는 세션이 종료되어도 다른 세션이 동일한 SID를 갖고 시작했을 때 정확한 세션 객체에 적용될 수 있도록 보장해줌 ✅오라클 DB 사용자 계정 오라클 DB 사용자 계정생성 방법 1. 계정생성시 세션 변경해야함 alter session set "_ORACLE_SCRIPT" = true; 2. 테이블스페이스 생성 create tablespace [테이블스페이스이름] // 대부분 회사 이름으로 사용 datafile ['데이터파일경로'] size [초기사이즈].. 2023. 3. 6.
Java 예습 오버플로우와 언더플로우 오버플로우 : 타입의 최대 허용범위를 벗어나는 것 언더플로우 : 타입의 최소 허용범위를 벗어나는 것 정수 타입 연산에서 오버플로우가 발생하면 컴파일 에러가 발생하지 않고, 해당 타입의 최솟값으로 돌아가서 순환한다. 마찬가지로 언더플로우가 발생하면 해당 타입의 최댓값으로 돌아가서 순환한다. 예를 들어 byte 타입의 허용범위는 -128~127인데 127을 넘어가는 오버플로우가 발생하면, 최솟값으로 돌아가 -128부터 순환한다. 언더플로우도 마찬가지로 127로 돌아가서 순환한다. byte value = 127; value++; System.out.println(value); //-128 value--; System.out.println(value); //127 다른 정수 타입의 경우에.. 2023. 3. 5.
Java 예습 변수 하나의 값을 저장할 수 있는 메모리 번지에 붙여진 이름 초기값 없이 변수 선언만도 가능 → 메모리 할당되지 않았기 때문에 사용 시에는 초기값 지정해야 함 int value; // 변수 선언 - 간응 참조 타입이 아닌 기본 데이터 타입(primitive data type)인 변수는 값 복사에 의한 전달(pass by value)을 하기 때문에 같은 값이라면 모두 같은 메모리 위치에 저장됨 int x = 3; int y = 3; System.out.println(System.identityHashCode(x)); //356573597 System.out.println(System.identityHashCode(y)); //356573597 // 값이 같기때문에 같은 메모리 주소를 갖게되어 같은 해시코드.. 2023. 3. 4.
SQL 예제(3) JOIN 연습문제 문제1) 지역별로 수강신청 인원수, 지역을 조회하시오 select address, count(*) || '명' as cnt from (select a.hakno, address from (select hakno from tb_sugang group by hakno) a inner join tb_student b on a.hakno = b.hakno) group by address; 문제2) 과목별 수강 신청 인원수, 과목코드, 과목명를 조회하시오 select a.gcode, gname, concat(count(*), '명') as "인원수" from tb_sugang a inner join tb_gwamok b on a.gcode = b.gcode group by gname, a.gco.. 2023. 3. 3.
Oracle SQL(5) rownum 고정된 값이 아닌 select되는 값에 따라서 동적으로 부여되는 번호 위의 순서대로 진행됨 작동방식 where절이 실행될 때 조건에 맞으면 1을 부여하고, 맞지 않으면 번호를 부여하지않고 버림 select문이 실행되면서 번호가 부여됨 → 따라서 rownum은 where절이 실행될때 존재하는 컬럼이 아니므로 rownum=1 외에 숫자 지정은 할 수 없음 rownum을 이용해서 4번~6번 데이터 조회하기 select uname, hakno, address, rownum from tb_student where rnum between 4 and 6 order by uname; 위의 방식대로 데이터를 추출하면 아무런 값이 추출되지 않음 rownum은 고정된 값이 아닌 select되는 값에 따라서 동적.. 2023. 3. 3.
반응형