728x90

java 33

Swing

스윙이란? 자바에서 GUI(Graphic User Interface)를 구현하기 위해 JDK에서 기본적으로 제공하는 개발 툴킷으로 선 마이크로시스템즈의 자바 기반 클래스의 일부이다. 스윙은 기존에 발표되었던 AWT(Abstract Window Toolkit)가 OS(Operating System) 및 윈도 시스템의 자원을 그대로 제공하기 때문에 자바에서 지향하는 "Write Once, Run Everywhere(WORE)"를 구현하기 위해 각종 시스템에서 공통적으로 제공하는 버튼, 대화창 등만을 구현하고 표나 트리 등의 좀 더 복잡하고 다양한 그래픽 컴포넌트를 사용할 수 없는 단점을 보완하기 위하여 JDK 1.2 버전부터 사용되었다. ● Frame, JFrame으로 창띄우기 - > jframe은 java..

ddit/Java 2022.09.05

ibatis

ibatis란? iBATIS(아이바티스)는 SQL에 기반한 데이터베이스와 자바, 닷넷(.NET), 루비(Ruby) 등을 연결시켜 주는 역할을 하는 영속성 프레임워크(Java에서 DB를 편하게 핸들링 할 수있게 해주는 프레임워크). 이러한 연결은 프로그램의 소스코드에서 SQL 문장을 분리하여 별도의 XML 파일로 저장하고 이 둘을 서로 연결시켜주는 방식으로 작동. 간단히 정리하자면 쿼리문을 자바소스에서 빼내어 XML문서에 넣어서 실행할 수 있게하는 것 DB연결까지 가능한 프레임워크(MVC패턴의 DAO부분같은..) - SQL문과 Java의 소스코드를 분리하고, 파라미터 값이 변경되지 않으면 Java의 소스 변경없이 SQL문만 변경해서 사용가능 - iBatis 데이터매퍼(iBatis에 자동으로 값을 매핑) A..

ddit/Java 2022.07.29

싱글톤패턴(Singleton)

싱글톤패턴 어플리케이션이 시작될 때 어떤 클래스가 최초 한번만 메모리를 할당(static) 그 메모리에 인스터스를 만들어 사용 => 하나의 인스턴스만을 생성하며, 필요할 때 마다 각자 알아서 기존의 인스턴스를 공유받아 생성 =>생성자가 여러번 호출되도 실제 생성되는 객체는 하나, 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴 장점 - 한 번의 new로 객체생성이 가능하기 때문에 메모리 낭비방지 - 싱글톤으로 만들어진 클래스의 인스턴스는 전역이기 때문에 다른 클래스의 인스턴스들이 데이터 공유하기 쉬움 - 두번째 이용부터는 객체 로딩시간이 줄어 성능향상 단점 - 싱글톤인스턴스가 너무 많은 일을 하거나 많은 데이터를 공유 시킬 경우 다른 클래스 인스턴스들 간의 결합도 증가 =>개방-폐쇄의 원칙 위..

ddit/Java 2022.07.27

java eclipse에서 oracle계정 연동, 시퀀스, 프로시저

▶계정연동 package exam; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.annotation.processing.SupportedSourceVersion; import java.sql.PreparedStatement; public class DBConnection { //정적인경우 public static void main(String[] args) { //연결공식외우기 String driver ="oracle.jdbc.driver.OracleDriver"; Stri..

ddit/Java 2022.06.09

ArrayList를 이용한 학생리스트만들기 문제풀기/toString사용법

문제2] 학생클래스는 학번(정수), 이름(문자열), 점수(정수)의 속성을 가짐, 초기값을 이용하여 객체생성하는 생성자 메소드와 gettr, setter, toString을 가짐 실행클래스에서 학생정보를 입력하는 메소드(insertScore())와 전체 학생을 조회하는 메소드(selectAll())와 이름을 입력받아 해당 학생정보를 출력하는 selectOne()메소드 구현 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 package chapter12; import java.util.ArrayList; import java.util.Scanner; publi..

ddit/Java 2022.06.08

예외처리 Exception

자바의 예외 - 예외란 error의 일종 - 발생 시 시스템 및 프로그램을 수행 불능상태 만들고 비정상적 종료됨 -> 이를 막기 위해 예외 처리를 통해, 시스템 및 프로그램을 정상종료로 유도 1) 예외의 종류 . Exception - 컴파일 시점에 발생하는 예외 . Runtime Exception - 프로그램 실행시에 발생하는 예외 . java.lang.Exception 제공 - 최상위 예외 클래스 (Object -> Throwable -> Error |->Exception |-> Exception |-> runtime Exception ) 2) 사용형식 try { 예외가 발생될 위험성이 있는 명령 예외가 발생하면 그 다음 명령들은 무시 ->catch블록으로 예외 발생 안 하면 catch문 무시 } ca..

ddit/Java 2022.05.30

추상클래스(abstract)

[1] 추상클래스는?(추상클래스 개념) - 복수개의 클래스간에 성격과 내용이 비슷한 필드와 메서드를 공통적으로 추출해 만들어진 클래스 - 실체클래스는 실체가 드러나는 클래스(보통의 클래스)이며, - 추상클래스는 실체 클래스의 공통적인 부분을 추출해 어느정도 규격을 잡아놓은 추상적인 클래스 - 실체클래스 실제 객체를 생성할 정도의 구체성을 가지는 반면, - 추상클래스는 아직 메서드와 내용이 추상적이기 때문에 객체를 생성할 수 없게 만들었음 - 추상클래스와 실체클래스는 상속적인 관계를 가지고 있음 [2] 추상클래스의 용도 - 공통된 필드와 메서드를 통일할 목적 . 필드와 메서드 이름을 통일하여 유지보수성을 높이고 통일성을 유지할 수 있음 - 실체클래스 구현시, 시간절약 . 강제로 주어지는 필드와 메서드를 가..

ddit/Java 2022.05.27

오버로딩 overloading, 오버라이딩 over ridding

▶ (overriding) 오버라이딩 - , 부모 클래스를 상속받은 자식 클래스에서 부모 클래스의 메소드와 메소드 이름 매개변수의 개수와 순서 리턴 타입이 동일하지만 , 메소드의 동작을 다르게 선언하는 방식 - (runtime polymorphism)/ (Dynamic Binding) 런타임 다형성 동적 바인딩 에 해당하며 컴파 일 시 모두 동일한 시그니처를 보유 -컴파일러는 메소드를 호출한 객체가 오버라이딩한 메소드를 가지고 있는지 알 수 없어서 메소드 호출 시 변수에 할당된 객체가 오버라이딩 메소드를 정의하지 않았다면 부모 클래스의 메소드를 호출하고 정의했다면 할당된 객체 클래스의 오버라이딩 JVM 메소드를 호출하는 등 에게 별도의 동작을 요구 ▷장점 . 오버라이딩을 수행하면 동일한 이름의 서로 다른..

ddit/Java 2022.05.25

220517 class와 instance,생성자, 객체지향프로그램

▶클래스와 객체 - 객체지향프로그램의 가장 핵심적인 구성단위 - 클래스가 인스턴스화 하면 객체(Object)가 됨 - 클래스는 필드(filed || attribute)와 행위(behavior,method)로 구성 - 붕어빵틀 = 클래스, 붕어빵 = 객체 - 속성과 행위를 포함한 기본단위 - 클래스의 목적 3단계 1 생성 => 2 객체화 =>3 호출 1)클래스 -설계도 또는 제품생산을 위한 틀(frame)에 해당, 객체를 사용하기 위해 필요한 도면 -클래스의 사용형식 접근지정자 class 클래스명{ 변수;--필드 : 접근지정자[static|final][void|리턴타입]메소드명([매개변수list]){ 명령문(들); } } ▷접근지정자 : 외부에서 클래스에 접근할 수 있는 범위 * public : 접근제한이..

ddit/Java 2022.05.17

220515 이차원배열 (다차원배열)로 성적,등수 처리

▶다차원배열 3차원은 잘 안씀 => 공간정보를 사용하는 app에서 가끔사용함 ▶2차원배열 - 행과 열로 구성된 면으로된 배열, 주로 많이 쓰는 다차원배열 - 같은 타입, 연속된 메모리가 필수조건! ▷ (선언형식) -타입명[][]배열명; =>주로사용 -타입명[]배열명[]; -타입명배열명[][]; ▷ (생성) heap메모리에 만든 값을 반환 -new 연산자 사용 -타입명[][] 배열명=new 타입명[행의 크기][열의크기];=>모든행과 열이 같은 갯수!, 주로 씀! -데이터를 정의 -타입명[][]배열명={{데이터(열)1}, {데이터(열)2}...}; =>{{}=>행의갯수}선언과 초기화한번에하면서 값넣어주기. * 이차원배열은 각 행마다 일차원배열을 생성해서 사용가능 ▶가변배열 - 각 행마다 열의 갯수가 다른 배..

ddit/Java 2022.05.16

220513 java 배열과 정렬의 종류, 기능이 강화된 for문

▶배열출력 -반복문을 사용해도 출력 가능하지만, 번거로우니 ' .Arrays ' 사용 ▷ import java. util. Arrays; => java lang패키지에 속한 class => 배열복사, 정렬, 검색, 비교 가능 => static 메소드로 바로 사용가능 => 출력 시 ▷ System. out. println(Arrays.toString(배열변수)); =>배열에 정의된 값들을 문자열 형태로 반환 ▶기능이 강화된 for문 ▷for(데이터타입 변수 : 배열명 또는 컬렉션){실행문} =>맨 처음부터 끝까지 훑을 때 사용, 배열에 들어있는 자료를 처음부터 끝까지 하나씩 변수에 넣어준다. => ' : ' : 배열과 컬렉션프레임워크에 포함된 변수를 지칭 => 다음에 다시 깊이 공부해보자! ▶정렬 -오름차..

ddit/Java 2022.05.13

220512 java 메모리구조, 배열, JCF

▶메모리의 구조 ▷메소드영역 -JVM이 시작될 때, 생성되고 모든 스레드(하나의 프로세스에서 독립적으로 실행되는 작업단위)가 공유하는 영 역 - 정적필드/ 상수, 메소드 코드, 생성자 코드 ▷CALL STACK=JVM스택영역 -스택은 메모리구조, 실행하고있는 메소드에대한 정보 -메소드를 호출할 때마다 프레임을 추가하고 메소드가 종료되면 해당 프레임을 제거 -버켓구조=LIFO구조(Last In First Out) ▷heap area -객체와 배열이 생성되는 영역 -생성된 객체는 스택영역의 변수나 다른 객체의 필드에서 참조 ▶배열 -인덱스를 부여하는 형태 =>인덱스는 0부터 차례대로 부여 기억공간의 수-1까지 사용가능! -연속되지 않은 기억공간은 일괄적인 처리수행 불가능 -여러가지 변형가능 -객체배열, 클래..

ddit/Java 2022.05.12

7일차 반복문,조건문의 중첩, 무한루프

반복문의 사용 ▶while문은 정해진 횟수를 모를 때 ▶for문은 횟수가 정해져있을 때 =>주로 사용! 이클립스 실습 ▶무한루프 -조건식이나 초기식을 정해주지 않거나 조건을 true하여 무한반복가능! ▷for(; ;){ } ▷while(true){ } => 멈추기 위해서는 break; 필요! ▷count사용하여 반복횟수 표시하기 import java.util.Scanner; public class WhileTest7 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); //계속 입력 - 0을 입력하면 종료 int count =1; String str = ""; while(true) {//==for( ; ; ) //입..

ddit/Java 2022.05.11

Java 초기화

▶초기화(initialization) : 객체를 선언하고 값을 '최초'로 할당하는 것 - int a = 10; - String res= ""; => 선언과 동시에 초기화 int a = 10; a = 20; => 2번째의 'a' 는초기화가 아니라 값을 바꾸는 할당(allocation) ▷초기화를 하는 이유는? 클래스 영역에 선언한 변수들은 초기화 없이도 컴파일러에서 0, null, null 처럼 자동으로 값을 할당 (데이터 타입의 오입력방지!) 그러나 메소드 안에서는 자동으로 값 할당되지 않음 => 값 할당 없으면 에러발생! 기억하기 ▶Java에서 초기화란? - 선언한 객체에 최초값을 입력하는 것

ddit/Java 2022.05.07

4일차,If , else, else if 조건문,Scanner 사용법, 객체생성, 메소드의 선언과 호출

▶조건문이란? 조건식에 따라 다른 실행문을 실행하기 위해 사용. ▷종류 if문 -조건식이 true면 블록실행, false면 실행안함 if( 조건식 ){ 실행문 A } 실행문 B ->중괄호는 여러개의 실행문을 하나로 묶기위해 작성, 가독성을 위해 생략하지 않는게 좋음! 조건식이 true이면 if 뒤의 A절->B절 순으로 실행 조건식이 false이면 B절 실행 if - else문 -조건식이 true면 if 블록실행, false면 else블록실행. if( 조건식 ){ 실행문 A }else{ 실행문 B } 실행문 C 조건식이 true이면 if 뒤의 A절->C절 순으로 실행 조건식이 false이면 B절->C절 순으로 실행 if - else if-else문 -처음 if문의 조건식이 false일 경우, 다른 조건식의..

ddit/Java 2022.05.07

3일차, 연산자

2022-0504)연산자(Operator) 1. 연산자의 종류 - 산술, 관계, 논리, 대입, 증감, 조건 - 단항, 이항, 삼항(조건) ->단항연산자는 논리부정 연산자가 대표적! ->ex) 한/영 키=토글키 ->대부분 연산자는 이항연산자에 속함. // 산술연산자 : +, -, /, *, % // 연산결과는 값(Value)을 반환 // % : 나머지 연산자 package chapter03; public class Operator01 { //마부class public static void main(String[] args) { Oper op1 = new Oper( ); // 클래스객체생성 System.out.println("덧셈=" + op1. add(10, 50)) ; //메소드 호출 시 데이터타입, 매..

ddit/Java 2022.05.04

2일차, 데이터타입

Java의 데이터 타입 1.기본타입 - 8가지 정수형 byte, short, int, long 실수형 float, double 문자형 (숫자로 변환가능, 정수타입에 속함) char 부울형(논리타입) boolean 2.참조타입-> C언어의 포인터 개념! 배열과 클래스 객체 - 용도에 따라 나뉨 1) 배열 타입 - 배열에 대한 주소가 저장되는 타입(=주소값) 2) 열거 타입 3) 클래스 - 객체에 대한 주소가 저장되는 타입(=주소값) 4) 인터페이스 리터럴(literal) 소스코드에서 프로그래머에 의해 직접 입력된 값 기본적으로 컴파일러는 정수 리터럴은 int로 간주. 만약 int허용 범위(-2,147,483,648 ~ 2,147,483,647)를 초과할 경우, 정수리터럴 뒤에 L붙여서 Long type임을..

ddit/Java 2022.05.03

1일차 ' Hello java '

오늘은 java, 이클립스를 윈도우에 다운, 설치하고 Hello java를 출력하는 것 까지 했다. 미리 해보고 가서 이해하기 쉬워 다행이었다. 환경변수에서 Path(경로)설정 시 %~% 는 환경변수임을 명시 java는 계속 업데이트 되고있지만 대다수의 기업은 java 1.8ver 이클립스 10ver 을 쓰고 있다. 왜냐하면 많은 프로그램이 1.8에 맞춰 구동되고 있고 안정성이 입증되어있기 때문이다. 전 버전에서 현재 버전으로 바뀐지도 불과 1~2년 밖에 되지 않았다고 한다. 실습에서 사용되는 버전은 JDK 8u121 8 = 1.8ver 크게 업데이트 될 때. 121 = Release Release란? 더보기 소프트웨어 기능의 추가, 성능 향상 등에 따라 프로그램이나 매뉴얼을 점차 개정해 가는 것. //..

ddit/Java 2022.05.03

[Java] 명령프롬포트창과 이클립스의 오류해결

명령프롬포트창 오류 이클립스에서 만든 logindemo 를 명령프롬포트창 cmd 에서 실행하려고 하니 계속 JNI 오류가 떴다. A JNI error has occurred, please check your installation and try again 이런 경우는 자바의 JDK 버전이 이클립스와 맞지 않아서 생긴다고 한다. 아마 자바는 현역에서 많이 사용한다고 하는 버전으로 받고 이클립스는 최신 버전으로 다운 받아서 그런 것 같다. 이 경우 이클립스 Project >Properties >java compiler 에서Compiler compliance level 을 자바의 jdk 버전과 맞춰주면 된다. 이클립스 오류 자바의 jdk 버전을 내려서 맞추고, 이클립스에서 입력값을 넣어보니 버전 변경 전에는 ..

etc 2022.04.01

[Java]메소드의 개념 정리 및 예제 / 생활코딩입문

메소드(method) : 프로그램 안에서 동작하는 하나의 작은 프로그램 public static void main(String[]args){ -> main 메소드 return } 메소드의 정의(define) : 직접 메소드를 만드는 것 (){ } 메소드의 호출(call) : 만들어진 메소드를 실행하는 것 (); main 메소드 public static void main(String[] args) {실행되기 원하는 로직} 은 규칙, 약속(자바-개발자) 메소드의 입력값 -매개변수(paramet)와 인자(argument) public static void numbering() { int limit = 5; int i = 0; while (i < limit) { System.out.println(i); i++;..

[java] 배열의 개념 및 예제 // 생활코딩입문

배열(Array) : 연관된 데이터를 모아서 관리위해 사용하는 데이터 타입. -상수의 사용 변수에 상수를 대입하는 것과 변수에 배열을 대입하는 것의 차이. 예) 1반 1반 = 프로그램 50명 각각의 학생의 이름 = 상수(=데이터) 반장과 부반장을 뽑았다. = 변수 강초당과 백노바라는 상수를 반장과 부반장이라는 변수에 대입. 코드화 시, 실제로는 동작하지 않는 의사코드 이다. 반장 = '강초당'; 부반장 = '백노바'; 이것의 효용은 분명하다. 교실에 들어온 선생님은 그 반의 반장이 정확하게 누군지 몰라도 반장에게 지시내리기 가능. 반장이 전학을 가서 부반장이 반장이 되었다고 해도 문제 없이 반장에게 지시가능. 이것이 변수와 상수의 관계. -배열의 사용 수많은 데이터들 중 연관되어있는 것들만 그룹핑해서 효..

[Java] 반복문

반복문(loop, iteration) -문법(각각의 구문은 서로 대체 가능) · while문 while(조건-> 언제까지) { 반복실행영역 } while문은 반복조건이 참이면 {반복실행영역} 무한반복, 거짓이면 반복의 종료. 콘솔에서 실행할 경우 Ctrl+C(dnls 나 Cmd+. 단축키를 이용해서 무한 반복을 중지 조건이 false인 경우에는 컴파일 조차안됨! -> 반복문이 한 번도 실행되지 않아 컴파일러가 오류 다음 반복문은 i의 값을 1씩 순차적으로 증가시키며 반복의 지속여부 결정 (변수i는 관습적으로 반복의 조건으로 사용하는 임의의변수) · for 문 ( 특정횟수만큼 반복실행하는 경우 자주사용) for(초기화; 종료조건; 반복실행){ 반복적으로 실행될 구문 } -초기화 : 반복문이 실행될 때 1회..

[Java]연산자, 비교와 Boolean, 조건문 개념 정리 및 예제//생활코딩입문

· 연산자 특정한 작업을 위해 사용하는 기호. · 연산자의 종류 작업의 종류에 따라 나뉨,(산술, 비교, 논리 등) -산술연산자 수학적인 계산에 사용되는 연산자. + 더하기 // 숫자와 숫자 뿐 아니라, 문자열과 문자열 결합시에도 사용 - 빼기 * 곱하기 / 나누기 % 나눈 후 나머지 concat : 괄호 안 문자열을 전부 결합해서 반환해 주는 함수 -> 연산자의 형변환 정수보다 더 넓은 범위인 소수로 자동형변환이 된다. -단항 연산자 하나의 항을 대상으로 연산이 이루어지는 연산자. + 양수를 표현. 실제로는 사용할 필요 X - 음수 표현. ++ 증가(increment)연산자로 항의 값을 1씩 증가. -- 감소(decrement)연산자로 항의 값을 1씩 감소. ++i는 i의 값에 1이 더해진 값을 출력,..

[Java]왕초보 상수의 데이터 타입, 형변환 생활코딩입문

[데이터의 크기] 8 bit 1 byte 1024 byte 1 kilobyte 1024 kilobyte 1 megabyte 1024 megabyte 1 gigabyte 1024 gigabyte 1 terabyte 1024 terabyte 1 petabyte 1024 petabyte 1 exabyte 1024 exabyte 1 zettabyte [데이터의 타입] ●정수형 데이터타입 메모리의크기 표현가능범위 byte 1 byte -128 ~ 127 short 2 byte -32.768 ~ 32. 767 int 4 byte -2,147,483,648~2,147,483,647 long 8 byte -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 ※ 어떤 데이터 ..

[JAVA] 왕초보 변수와 주석, 세미콜론 생활코딩입문

변수(variable) : 변할 수 있는 값(= 문자나 숫자, 모든 데이터) -> 데이터로 변할 수 있는 것이 가장 큰 특징 / 데이터를 가르키는 컨테이너..? [변수의 선언과 할당 / 실습] 1. 새로운 패키지와 class 생성 2. 정수 int a ; -> int 정수의 데이터형식 / a 변수 -> a를 정수로 사용하겠다고 선언(데이터형식의 강제)// integer의 약자로 한국어로는 정수 a = 1 ; -> 변수 a에 숫자 1을 할당 3. 실수 double a ; -> double 실수의 데이터 형식 / a 변수 -> a를 실수로 사용하겠다고 선언 a = 소수점이 있는 수 1.2 등 만약 어떤 변수를 선언했으면, 변수에 어떤 값을 대입할 때 변수에 맞는 데이터 형식을 입력해야 함. -> int a ..

[JAVA] 왕초보 숫자와 문자 생활코딩

[숫자와 문자] data type = 자료형 =데이터형 숫자예제실습 1. 예제 패키지(=토픽)을 만든다. 2. New class 생성 3. System.out.println(1+2); 예제 넣기 곱하기를 할 때는 * (에스터리스크)사용 - System.out.println(9*2); 나누기를 할 때는 / (슬래쉬)사용 -System.out.println(8/2); 문자와 문자열 1. 문자는 '(작은따옴표)'로 감싸기 2.문자열(문자+문자)은 "(큰따옴표)"로 감싸기 ※문자열을 ' ' 로 감쌀 수는 없지만, 문자는 " "로 감쌀 수 있다. 즉, 문자열은 문자로 인식 안되지만, 문자는 문자열로 인식가능 3. 문자열과 문자열 결합시 + 사용 만약('1'+'1')이라면 11이라고 실행됨 4. 문장안에 " " 를..

728x90