본문 바로가기

분류 전체보기122

[Java] StringBuffer, StringBuilder String 객체는 데이터가 변화되면 메모리상의 변화가 많아 속도가 느리다 문자열이 변경되면 기존의 객체를 버리고 새로운 객체를 메모리에 생성하기 때문 (버려진 객체의 메모리는 GC에 의해 회수) 이를 보완한 것이 StringBuffer, StringBuilder인데, 데이터가 변경되면 기존의 객체를 재활용해 수정하는 것이 특징 속도는 StringBuilder가 조금 더 빠르지만 데이터안정성은 StringBuffer가 조금 더 좋다 StringBuffer는 멀티 스레드 상태에서 동기화를 지원하고 StringBuilder는 단일 스레드만 지원해서 하나씩 메모리를 받아서 속도는 느려질 수 있지만 데이터가 훼손되거나 누락되는일이 없다 많은 데이터를 처리할 때는 속도가 중요하기 때문에 StringBuilder를.. 2021. 8. 1.
[Java] 람다식 람다식 : 익명함수(anonymous function)을 이용해 익명객체 생성하는 식 인터페이스를 이용해 껍데기를 만들고 기본적으로 함수를 만들어 원하는 대로 사용 가능한 것 객체지향이 아닌 함수(절차)지향으로 프로그래밍하는 방법 객체를 따로 만들 필요 없이 메소드의 핵심적인 부분 ( 파라미터와 실행문 ) 만을 이용해 원하는 결과를 도출 인터페이스1~4 public interface No9_Lamda_Interface1 { public void method(String s1, String s2, String s3); } public interface No9_Lamda_Interface2 { public void method(String s1); } public interface No9_Lamda_Inte.. 2021. 8. 1.
[Java] 추상클래스 인터페이스의 특징을 갖고 있는 추상적인 클래스 클래스의 공통된 부분을 뽑아 별도의 추상클래스로 만들어놓고 이것을 상속해서 사용 = 공통된 부분을 추상클래스로 선언만 해놓고 각자 알아서 오버라이드해서 쓰는 방식 특징 멤버변수를 가지고 extends 이용 추상메소드는 상속한 클래스에서 반드시 구현해야함 일반메소드나 생성자도 가질 수 있음 예제 1) 추상클래스 // 추상클래스 public abstract class No11_AbstractClass { int num; String str; // 일반 생성자 public No11_AbstractClass() { System.out.println("AbstractClass constructor"); } public No11_AbstractClass(int i, S.. 2021. 7. 29.
[Java] 비트연산 컴퓨터는 이진수로 소통하기 때문에 이진수 연산(비트연산)을 이해할 필요가 있다 자연수 3 을 이진수로 표현하면 [1][1] 이고 2개의 공간을 사용하므로 2bit이다 컴퓨터는 1byte = 8bit 를 기준으로 사용한다 예를들어 Integer의 값의 범위는 -2^31 부터 (2^31)-1 이다 Integer은 4byte = 32bit 를 사용하고 모든 bit를 1로 채운 값은 4,294,967,295 이다 맨 앞의 32번째 자리는 부호비트로 0이면 양수, 1이면 음수를 나타내므로 음수 최솟값 : [1][1][1]...[1][1][1] // 양수 최댓값 : [0][1][1]...[1][1][1] 음수는 -2^31까지 표현이되고 양수는 2^31 -1까지 표현이 된다 다음은 비트연산자를 활용한 예제이다 pub.. 2021. 7. 29.
[백준 풀이_Java] 2501 약수구하기 문제 어떤 자연수 p와 q가 있을 때, 만일 p를 q로 나누었을 때 나머지가 0이면 q는 p의 약수이다. 6을 예로 들면 6 ÷ 1 = 6 … 0 6 ÷ 2 = 3 … 0 6 ÷ 3 = 2 … 0 6 ÷ 4 = 1 … 2 6 ÷ 5 = 1 … 1 6 ÷ 6 = 1 … 0 그래서 6의 약수는 1, 2, 3, 6, 총 네 개이다. 두 개의 자연수 N과 K가 주어졌을 때, N의 약수들 중 K번째로 작은 수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 K가 빈칸을 사이에 두고 주어진다. N은 1 이상 10,000 이하이다. K는 1 이상 N 이하이다. 출력 첫째 줄에 N의 약수들 중 K번째로 작은 수를 출력한다. 만일 N의 약수의 개수가 K개보다 적어서 K번째 약수가 존재하지 않을 경우에는 0을 출력.. 2021. 7. 28.
[Java] 인터페이스 인터페이스란? 클래스와 달리 객체를 생성할 수 없고 1) 다양한 자료형의 객체를 위해 (확장성) 2) 객체를 계속 새로 만들 필요 없이 인터페이스에서 선언만 한 메소드를 인터페이스를 implements 한 클래스에서 구현할 수 있기 때문에 다양한 기능을 가진 객체를 생성 가능 -> '클래스에서 인터페이스를 구현한다' 라고 함 예제 1) 인터페이스 A,B public interface interfaceA { // 인터페이스는 메소드를 선언만 하고 정의하지는 않는다 // 구현하는 클래스에서 오버라이드 public void funA(); } public interface interfaceB { public void funB(); } 인터페이스를 implements한 클래스 //다형성 여러 인터페이스를 구현할 .. 2021. 7. 27.