일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- DesignPattern
- DB
- 직장인인강
- 디자인패턴
- 패스트캠퍼스
- javabasic
- String
- 자바연습문제
- js
- 패캠챌린지
- 디자인
- Spring
- 데이터베이스
- java
- 리눅스
- 자바
- 재택근무
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online
- 자바예제
- 스프링
- 국비
- 자바기본
- linux
- ncs
- 자바기초
- java기초
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online강의
- 패스트캠퍼스후기
- 웹
- 직장인자기계발
- Today
- Total
목록Back-End/Java(자바) (35)
FIF's 코딩팩토리
클래스 new는 클래스로 부터 객체 생성하는 연산자. new 연산자가 생성한 객체는 heap영역에 저장되는 동시에 이 객체의 주소가 리턴된다. new 연산자로 객체 생성 -> 객체의 주소를 변수에 저장 -> 변수가 객체를 참조 클래스의 구성멤버 클래스에는 객체가 가져야 할 구성 멤버가 선언된다. 필드:객체의 고유 데이터, 상태 정보, 부품 객체를 저장하는 곳 생성자:클래스로부터 객체를 생성할 때 호출되어 객체의 초기화 담당 new연산자의 생성자 실행 -> heap영역에 객체 생성 -> 객체의 주소 리턴 -> 주소가 클래스 타입 변수에 저장 됨 생성자를 명시적으로 선언하는 이유는 객체를 다양하게 초기화 하기 위해서. 메소드:객체의 동작, 객체 간의 데이터 전달 수단 필드와 변수는 닮앗지만, 필드를 변수라 ..
String과 StringBuffer, StringBuilder의 차이점은 String은 immutable(불변)하고 StringBuffer, StringBuilder는 mutate(가변) 한다는 점이다. 쉽게 말해 String은 new 연산을 통해 생성되면 그 인스턴스의 메모리 공간은 절대 변하지 않는다. 그래서 +연산이나 concat을 이용해서 문자열에 변화를 줘도 메모리 공간이 변하는 것이 아니라 새로운 String 객체를 new로 만들어서 새로운 메모리 공간을 할당하는 것이다. 이렇게 새로운 문자열이 만들어지면 기존의 문자열은 가비지 콜렉터에 의해 제거되야 하는 단점(언제 제거될지 모름)이있다. 또한 이러한 문자열 연산이 많아질 때, 계속해서 객체를 만드는 오버헤드가 발생하므로 성능이 떨어질 수 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/kBiGg/btqvRHqrCsc/nLsgMXBHArIcj0tdJ8ZRpK/img.png)
Iterator는 자바의 컬렉션 프레임워크에서 컬렉션에 저장되어 있는 요소들을 읽어오는 방법을 표준화한 것이다. 컬렉션 프레임워크란 데이터를 저장하는 클래스들을 표준화한 설계이다. 컬렉션 프레임워크는 아래 그림과 같이 데이터를 저장하는 구조에 따라 3가지 인터페이스로 구성된다. Set, List, Map은 어떤 데이터들의 집합체라고 볼 수 있다. Set과 List는 데이터의 그룹(Collection)이다. Set은 순서를 유지하지 않는 데이터 집합이다. 데이터의 중복을 허용하지 않고, HashSet, TreeSet 등이등이 있다. List는 순서를 유지하는 데이터의 집합이다. 데이터의 중복이 허용되고, LinkedList, ArrayList 등이등이 있다. Map은 키(Key)와 값(Value)으로 이루..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bWMqaw/btqvBpbyThh/QGyT9GunRksHhkpcpPY0vk/img.png)
MariaDB홈페이지에서 다운로드 https://downloads.mariadb.com/Connectors/java/connector-java-2.4.1/ Connectors/java/connector-java-2.4.1/ - MariaDB downloads.mariadb.com mariadb-java-client-2.4.jar 파일을 다운로드 받는다.(버전은 바뀔 수 있다.) 다운로드한 파일을 라이브러리에 추가해준다. 프로젝트 우클릭 – Build Path – Add External JARs – mariadb-java-client-2.4.1.jar 추가 package database; import java.sql.Connection; import java.sql.DriverManager; import ..
자바 정적쿼리와 동적쿼리 – Statement, PreparedStatement 자바에서 데이터베이스로 쿼리문을 전송할 때 사용할 수 있는 인터페이스가 2가지 있다. Statement와 PreparedStatement이다. 둘다 쿼리 전송기능을 가지고 있지만 차이점이 있다. 어떤 점이 차이가 나고, 어느 인터페이스를 사용하는 것이 좋은지 자세하게 알아보자. 공통점 1. 두 인터페이스 모두 SQL 질의문을 전달하는 역할을 한다. 2. 사용시 반드시 try~catch문 또는 throw를 통해 exception처리를 해줘야 한다. Statement 인터페이스 1. Statement 객체는 Statement 인터페이스를 구현한 객체를 Connection 클래스의 createStatment()메소드를 호출함으로써..
정적분석? 1) 파일의 겉모습을 관찰하여 분석 2) 파일을 실행하지 않는다. 3) 파일의 종류(EXE, DELL, DOC, ZIP, TXT), 크기, 헤더(PE)정보, Import/Export API, 내부문자열, 실행 압축 여부, 등록 정보, 디버깅 정보, 디지털 인증서 등의 다양한 내용을 확인. 4) 디스어셈블러[1]를 이용해서 내부 코드와 그 구조를 확인. 5) 정적 분석으로 얻어진 정보는 동적 분석에 좋은 자료가 됨.[2] 동적분석? 1) 파일을 직접 실행시켜 그 행위를 분석. 2) 디버깅을 통해 코드 흐름과 메모리 상태 등을 자세히 살펴봄. 3) 레지스트리, 네트워크 등을 관찰하면서 프로그램의 행위를 분석. 4) 디버거를 이용해 프로그램 내부 구조와 동작 원리를 분석할 수 있음. 1) 기계어를 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bfLSBm/btqvrEnIfYU/qhvqaL9ao4BGvvoGmI0Vd0/img.png)
CheckStyle, PMD, FindBugs 목적 : 코딩 스타일 통일, 정적 분석으로 빠른 문제점 인지 CheckStyle : 코딩 스타일 규칙을 정의하여 체크해줌. 프로젝트 완료 후 유지보수시 많은 문제중 하나가 프로그래머들이 여려명이다 보니 프로그래머의 취향에 따라 변수명, 메소드명, 작성법등이 다른 관계로 많은 문제가 발생할 수 있는데 이러한 문제를 해결하기 위해 만들어짐 PMD(Programing Mistake Detector) : 응용 프로그램에서 발견된 문제를 보고하는 오픈 소스 정적 Java 소스 코드 분석기. 문법적으로 오류 가능성이 높은 항목들을 체크해서 알려줌 FindBugs : 정적 분석 제공 툴. 기본적으로 발생할 수 있는 결함을 확인하고 Report해줌. PMD 사용법 코드를 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/boPDNT/btqvi5Kt1lX/R6fqAZ58MvgjlKKFBxxgF0/img.png)
Adapter를 우리말로 바꿔보면 변환기? 정도입니다. 무엇을 변환할 것인가? 핸드폰을 예를들어 봅시다. 핸드폰을 콘센트에 직접 접속시켜 충전하지 않고 충전기라는 어댑터를 통해 핸드폰과 콘센트를 연결해 충전합니다. 왜 이런 어댑터를 사용할까요? 바로 기존에 이미 잘 구축되어있는 것을 새로운 어떤 것이 사용할 때, 양쪽간의 호환성을 유지해주기 위함입니다. 자바에서도 직접적으로 메소드를 호출하지 않고 중간에 어댑터를 거쳐 메소드를 호줄하도록 하는 패턴이 바로 어댑터 패턴 입니다. 프로그램을 보면 직접 호출하지 않고 왜 저렇게 거치고 거쳐서 호출하는 걸까라는 생각이 들 수있습니다. 만약 직접 호출이 안되는 경우이거나, 기존에 있는 것을 변환해서 호출해야 하는 경우를 생각하면 기존에 있는 Protocol를 수정..