728x90

ddit/Java 35

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

MVC패턴(model-view-controller)< VO,DAO,Service,Controller>

▶MVC(Model, View, Controller) - Model : DB처리를 위한 data(좁은의미), data를 구성하기 위한 프로그램까지 포함/Service, DAO 포함(넓은의미) =>model2, model1은 존재하지 않으며, MVC패턴 이전의 방법을 지칭 - View : model을 사용자가 원하는 모습으로 보여줌 ,출력 또는 응답페이지. - Controller : Model과 View 사이에 있는 컴포넌트. Model이 데이터를 어떻게 처리할지 알려주는 역할로 사용자의 요청을 받아서 처리하는 부분. ▶MVC패턴의 로직을 처리하는 클래스들 VO, DTO ==> 데이터를 저장하는 역할만 하는 클래스 - VO : Value Object :데이터를 저장하고 사용할 수 있게함. - DTO : D..

ddit/Java 2022.07.26

Collection Framework(Array List, Vector...), generic / 문제풀기

▶Vector package kr.or.ddit.basic; import java.util.Vector; public class VectorTest { public static void main(String[] args) { //객체생성 //벡터 내부에 배열이 있음 Vector v1 = new Vector(); //Vector v1 = new Vector(); System.out.println("처음 크기 :"+v1.size()); //Collection에는 데이터를 객체만 저장할 수 있다. //데이터 추가 => add(추가할 데이터) //반환값 : 추가 성공(true), 추가실패(false) v1.add("aaaaa"); v1.add(new Integer(111)); //예전에는 숫자기입시 , //객체..

ddit/Java 2022.06.22

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

HashMap

Map . Collection 인터페이스와는 다른 저장 방식으로 데이터 저장 . Map 인터페이스를 구현한 Map 컬렉션 클래스들은 키와 값을 하나의 쌍으로 저장하는 방식(key-value 방식)을 사용 . 키(key)는 값(value)을 찾기 위한 이름의 역할 . 데이터의 저장 순서를 유지하지 않음 . key : 중복을 허용 X 덮어씀 . value : 중복은 허용 O ** HashMap 클래스 . Map 컬렉션 클래스에서 가장 많이 사용되는 클래스 . key와 value를 묶어 하나의 entry로 저장 . 해시 알고리즘(hash algorithm)을 사용하여 많은 양의 데이터를 검색하는데 검색 속도가 매우 빠름 . 중복된 키로는 값을 저장할 수 없으며, value에 null값도 사용 가능 . Hash..

ddit/Java 2022.06.08

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

제네릭(generic), 컬렉션 프레임워크 (Collection Framework)

▶제네릭(generic) - 자바에서 제네릭(generic)이란 데이터의 타입(data type)을 일반화한다(generalize)는 것을 의미 - 제네릭은 클래스나 메소드에서 사용할 내부 데이터 타입을 컴파일 시에 미리 지정하는 방법 - 컴파일 시에 미리 타입 검사(type check)를 수행하면 다음과 같은 장점 . 클래스나 메소드 내부에서 사용되는 객체의 타입 안정성을 높일 수 있음 . 반환값에 대한 타입 변환 및 타입 검사에 들어가는 노력을 줄일 수 있음 . 비슷한 기능을 지원하는 경우 코드의 재사용성이 높아짐 타입 설명 ------------------- Type Element Key Value Number [1]class 및 interface 선언 public class ClassName {...

ddit/Java 2022.06.04

java.lang 패키지

[1]Object class - java.lang 패키지는 자바에서 가장 기본적인 동작을 수행하는 클래스들의 집합 - java.lang 패키지의 클래스들은 import 문을 사용하지 않아도 클래스 이름만으로 바로 사용할 수 있 - java.lang 패키지 중에서도 가장 많이 사용되는 클래스 - Object 클래스는 모든 자바 클래스의 최고 조상 클래스(=최상위클래스) - 자바의 모든 클래스는 Object 클래스의 모든 메소드를 사용할 수 있음 - Object 클래스는 필드 없 총 11개의 메소드만으로 구성 clone(),equals(),finalize(), ClassgetClass(),hashCode(), notify(),notifyAll(),toString(),wait(),wait(long timeou..

ddit/Java 2022.06.02

예외처리 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

인터페이스(Interface)

[1] 인터페이스란? - 동일한 목적 하에 동일한 기능을 수행하게끔 강제하는 것이 인터페이스의 역할이자 개념 - 자바의 다형성을 극대화하여 개발코드 수정을 줄이고 프로그램 유지보수성을 높이기 위한 도구 [2] 인터페이스 문법과 다형성 이해 - 인터페이스는 interface 키워드를 통해 선언할 수 있으며 implements 키워드를 통해 일반 클래스에서 인터페이스를 구현할 수 있다. - JAVA8 이전까지는 상수, 추상메소드만 선언이 가능(강제성이 강함을 의미) - JAVA8부터 디폴트메소드, 정적메소드가 추가(구현 강제성 안에 유연함을 제공) [3] 사용형식 public interface 인터페이스명 { //상수 - 인터페이스에서 설정된 값을 변경하지 말고 제공해주는 값만 참조(절대적) 타입 상수명 =..

ddit/Java 2022.05.27

추상클래스(abstract)

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

ddit/Java 2022.05.27

다형성(polymorphism)

▶다형성(polymorphism) - 하나의 객체가 여러 가지 타입을 가질 수 있는 것을 의미 - 같은 자료형에 여러 가지 객체를 대입하여 다양한 결과를 얻어내는 성질 - 부모 클래스 타입의 참조 변수로 자식 클래스 타입의 인스턴스를 참조할 수 있도록 하여 구현 - 다형성은 상속, 추상화와 더불어 객체 지향 프로그래밍을 구성하는 중요한 특징 중 하 ▷ 장점 . 하나의 타입으로 다양한 실행 결과를 얻을 수 있음 . 객체를 부품화하여 유지 보수를 용이 ▷ 구현 방법 . 클래스의 상속이나 인터페이스를 구현하는 자식 클래스에서 메서드를 재정의(오버라이딩) 하고 자식 클래스를 부모 타입으로 업캐스팅 . 부모 타입의 객체에서 자식 멤버를 참조하여 다형성을 구현 package kr.or.ddit.polymorphis..

ddit/Java 2022.05.25

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

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

ddit/Java 2022.05.25

220523 인스턴스멤버와 정적멤버, 싱글톤,final 필드와 상수

▶인스턴스 멤버 - 객체를 생성한 후 사용할 수 있는 필드와 메소드. ▷this - 객체 내부에서 인스턴스 멤버에 접근하기 위해 사용 - 객체 자신을 'this'라고 함 - 주로 생성자와 메소드의 매개 변수 이름이 필드와 동일한 경우 인스턴스 멤버인 필드임을 명시하고자 할 때 사용 public class Car{ //필드 String model; int speed; //생성자 Car(String model){ this.model = model; } //메소드 void setSpeed(int speed){ this.speed=speed; } ▶정적멤버 -클래스에 고정된 멤버로서 객체를 생성하지 않고 사용할 수 있는 필드, 메소드 ▷static - 정적멤버 선언 시 static 키워드를 추가적으로 붙이면 됨..

ddit/Java 2022.05.23

220520 Java 메소드, 오버로딩, 오버라이딩, 원의 넓이, 원기둥의 부피구하기

▶오버로딩 - 한 클래스내에 같은 이름이지만 서로 다른 타입, 기능의 메소드가 여러 개 존재 - 기능의 다형성을 지원 ▶오버라이딩 - 상속관계선행 - 부모클래스에서 선언된 메소드가 자식클래스에서 같은 이름으로 재정의 - 기능의 확장 - 다형성을 지원 ** 다중상속불가능 자바의 특징(인터페이스로 가능=>공통모듈사용시), c++은 가능 ▶this - 멤버변수와 지역변수의 이름이 같을 시, 멤버변수를 호출할때 사용 ▶final - 변수, 메소드, class에 사용 - ' = ' 오른쪽에는 쓸 수 없음, 저장공간이 아닌 값이기 때문에 ->precomfile? - 전부 대문자로 기술 - method area에 생성 ▶ 생성자 메소드 - 호출되어 질 수없음, new연산자와 같이사용(객체생성 시) 실습 /* * 문제..

ddit/Java 2022.05.20

220519 클래스와 인터페이스의 차이, 메소드

▶클래스와 인터페이스의 차이점 - 클래스 : 풀옵션 - 인터페이스 : 틀만 있음 package chapter06; public class Ccar { //자동차 클래스(설계도) //필드 =멤버변수= 속성 //접근제한자 생략 =>default=>같은 패키지안에서 접근가능 //제조사 String company ="현대자동차"; String model ; //색깔 String color; //최대 스피드 int maxSpeed; //현재 스피드 값을 할당하지않음=0 int speed; //기본생성자 Ccar() { } //생성자오버로딩. 타입, 매개변수의 순개타(순서,개수,타입) Ccar(String model) { //model : 이 곳으로 던져지는 문자형 파라미터를 //담아주는 매개변수(지역변수 : 이 ..

ddit/Java 2022.05.19

220518 객체지향프로그래밍

저번 시간에 이어서 오늘도 객체지향프로그래밍에 대해 배웠다. ▶객체지향프로그래밍(OOP : Object Oriented Programming ) ▷객체와 클래스 설계도는 클래스, 클래스로 만든 객체는 인스턴스 더보기 인스턴스는 클래스와 객체와의 관계에 중점 객체는 실체대상을 지칭할때 같은 말이지만 관점이 조금 다름 ▷클래스와 구성멤버 - 필드 : 멤버변수, 객체 고유 데이터, 부품객체 상태정보 저장. 생성자와 메소드 내에서만 사용되고 생성자와 메소드의 실행 종료 시 자동 소멸. - 생성자 : new 연산자로 호출되는 특별한 { } 블록, 객체 생성 시 초기화 담당 클래스이름과 같고 리턴타입없음. 하나 이상의 생성자를 가질 수 있으며, 생략 시 컴파일러는 기본 생성자를 바이트 코드에 자동추가. - 메소드 ..

ddit/Java 2022.05.18

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

[java] 복습 비트 연산자, printf(); ,

▶비트 연산자 데이터를 비트 단위로 연산 0과 1로 표현이 가능한 정수 타입이나 정수형으로 캐스팅이 가능한 자료형만 비트 연산이 가능(실수x). 기능에 따라 비트 이동연산자, 비트 논리연산자로 구분합 x y x|y x&y x^y 1 1 1 1 0 1 0 1 0 1 0 1 1 0 1 0 0 0 0 0 ▷비트 이동 연산자, shift 연산자(,) 연산식 설명 - x > y 정수 x의 각 비트를 y만큼 오른쪽으로 이동 - 오른쪽으로 이동 시킬 시, 부호가 있는 정수는 부호를 유지하기 위해 왼쪽 피연산자가 음수인 경우 빈자리를 1로 채움.(양수는 0) ※ ' x

ddit/Java 2022.05.14

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
728x90