자바

JAVA 네트워크 프로그래밍 네트워킹의 개념은 컴퓨터들을 서로 연결하여 데이터를 손쉽게 주고받거나 또는 자원을 함께 공유하고자 하는 노력에서 시작되었다. 자바에서 제공하는 java.net패키지를 사용하면 이러한 네트워크 어플리케이션의 데이터 통신 부분을 쉽게 작성할 수 있다. InetAddress Ip주소를 다루기 위한 클래스 URL(Uniform Resource Location) URL은 인터넷에 존재하는 여러 서버들이 제공하는 자원에 접근할 수 있는 주소를 표현하기 위한 것 ‘프로토콜://호스트명:포트번호/경로명/파일명?쿼리스트링' URLConnection 어플리케이션과 URL간의 통신연결을 나타내는 클래스의 최상위 클래스로 추상클래스 HttpUrlConnection과 JarURLConnection이..
try-with-resource문은 무엇인가? 자바7은 try/catch/finally문과 함께 유용하게 사용할 수 있는 문법을 제공한다. AutoCloseable 인터페이스를 구현한 FilReader 클래스를 이용하면 아래와 같이 자원 종료를 걱정할 필요가 없다. => 자원 해제 자동처리 기능 public void resourceHandling(){ try(final FileReader reader = new FileReader("/test/test.txt")){ final char[] buffer = new char[128]; reader.read(buffer); }catch(IOException e){ } }​ try-with-resources문이 도입되기 전에는 reader 인스턴스를 명시적으로 ..
컬렉션 프레임워크자바에서는 많은 수의 다양한 패키지(Java API)를 제공하여 개발자들이 자바 어플리케이션을 쉽게 개발할 수 있도록 도와준다.그 중 컬렉션 프레임워크에 대해 알아보겠다.컬렉션 프레임워크는 다수의 데이터를 쉽게 처리할 수 있는 표준화된 방법을 제공하는 클래스이다. 컬렉션 프레임워크의 핵심 인터페이스- List, Set, Map각 컬렉션을 다루는데 필요한 기능을 가진 3개의 인터페이스르 정의하고, 인터페이스 List와 Set의 공통된 부분을 다시 뽑아서 새로운 인터페이스인 Collection을 추가로 정의하였다. List순서가 있는 데이터의 집합, 데이터의 중복을 허용한다.ArrayList, LinkedList, Stack, Vector 등Set순서를 유지하지 않는 데이터의 집합. 데이터의..
메이븐 설치메이븐은 해당 url에서 쉽게 다운로드 가능 (http://maven.apache.org/download.cgi)메이븐을 설치한 후에는 자바를 설치한 것처럼 환경변수를 잡아 주어야한다.(보통 JAVA_HOME 처럼, 메이븐에서는 M2_HOME으로 설정해주는 것 같음)M2_HOME=E:\apache-maven-3.5.3PATH=%M2_HOME%/bin 메이븐은 명령형 기반의 도구이기 때문에 압축을 해제하고 운영체제의 환경변수에 설정값을 반영하면 모든 것이 끝이 난다. 메이븐의 이해메이븐은 자바기반의 빌드 도구 이며, 플러그인을 설치하면 리포팅과 문서화, 각종 테스트와 검사를 수행할 수 있는 확장 가능한 구조를 가지고 있다.(pom.xml 파일 하나만 변경하면 메이븐 설정을 변경할 수 있음)메이븐..
#10String이 주어지면, 중복된 char가 없는 가장 긴 서브스트링 (substring)의 길이를 찾으시오. // Input : "aabccbc"// output : 3("abc") 문자 list를 만든 후, for문을 돌며 문자를 추가한다. 같은 문자가 포함되어 있을시 list length를 구하여 maxLength보다 크면 maxLength교체 크지 않으면 현 maxLength를 유지한다. 1234567891011121314public static int solution(String str) { int maxLength = 0; List list = new ArrayList(); for(int i=0; i list.size() ? maxLength : list.size(); list.clear(..
팩토리얼(Factorial) 구하기재귀적 방법을 사용하지 않는 팩토리얼 구현을 작성하라. Factorial(n) = 1 * Factorial(n-1);재귀 팩토리얼12345public long recursiveFactorial(int n) { if(n
면접 단골문제인 피보나치(fibonacci) 구현 1에서 n까지의 피보나치 수열을 반환하는 메서드를 작성하라. 123456789101112131415161718192021222324252627282930313233public static List fibonacci(int n){ if(n
FizzBuzz문제 구현하기 1에서 n까지의 숫자를 출력하되 3의 배수는 Fizz라는 문자열을 출력하고, 5의 배수는 Buzz라는 문자열을 출력하고 15의 배수는 FizzBuzz라는 문자열을 출력하는 알고리즘을 작성하라. 12345678910111213141516public static List fizzBuzz(final int n){ List result = new ArrayList(n); for(int i=0; i
이진탐색(Binary Search)효율적인 검색(탐색)기법인 이진탐색에 대해 알아보겠습니다.탐색시 리스트가 정렬되어 있지 않으면 리스트 검색 시 주어진 값을 찾기위해 모두를 찾아봐야한다는 단점이 있습니다. 하지만 정렬된 리스트가 있거나 검색전에 정렬을 수행한 경우 이진 탐색(binary Search)을 사용하면 매우 효과적으로 원하는 값을 얻을 수 있습니다. => 이진탐색은 원소를 일일이 비교하지 않고도 주어진 원소를 찾을 수 있으며, 백만 개의 원소가 있어도 20번 미만의 비교로 주어진 원소를 찾을 수 있습니다. O(logn) 12345678910111213141516171819202122package algorithm; import java.util.List; public class BinarySea..
병합정렬, 합병정렬(Merge Sort)분할정복(divide-and-conquer)의 한 종류인 합병정렬에 대해 알아보겠습니다.컨셉은 리스트를 두개로 나누고 각 하위 리스트를 정렬 후 하나로 합치는 방법입니다.설명보다 그림을 보는게 이해가 더 빠를 듯 싶어서 이해가 쉽게될 만한 그림을 가져왔습니다. (그림 출처 : http://blog.naver.com/k97b1114/140163896337) 병합 정렬의 성능은 O(nlogn)이고 각각의 병합시간은 O(n)이며 각 재귀 호출은 주어진 리스트 숫자의 절반만큼만 발생합니다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647package sort; impo..
깡냉쓰
'자바' 태그의 글 목록 (3 Page)