람다식이란? 람다식이란 "식별자없이 실행가능한 함수" 함수인데 함수를 따로 만들지 않고 코드한줄에 함수를 써서 그것을 호출하는 방식이라고 생각하시면 되겠습니다. 함수적 프로그래밍을 위해 자바 8부터 람다식(Lambda Expressions)을 지원하면서 기존의 코드 패턴이 많이 달라졌습니다. 자바스크립트에서 주로 봤었던 문법들을 이제 자바에서도 종종 보이곤 해요. 람다가 처음에는 생소하게 느껴질 수 있지만 문법이 간결한만큼 익숙해지면 가독성 면에서 장점이 큰 듯 합니다. (고급 프로그래머들중에서는 람다를 최대한 쓰지말라고 하는 사람도 있습니다.) 람다식 사용법 (매개변수, ...) -> { 실행문 ... } (매개변수, ...)는 오른쪽 중괄호 { } 블록을 실행하기 위해 필요한 값을 제공하는 역할을 합..
자바를 배울 초창기때 만들었던 미니언 성적관리프로그램입니다. 소스를 정리하다가 발견했네요.... 안에 소스를 보니 가관이군요... 이런식으로 코딩을 했었다니. 원래라면 고치고 인터넷상에 올려야하지만 엄두가 나지않아 그냥 올립니다. 그냥 Swing을 어떤식으로 사용했는지 참고용으로만 사용해주시면 감사하겠습니다. 프로그램 실행화면은 아래와 같습니다. 실행방법1. 위의 압축파일을 다운받아서 압축을 풀어줍니다. 2. 소스를 보시다보면 위와같이 그림파일 경로를 지정해놓은 소스가 여럿 보이실겁니다. 이 경로를 1번에서 다운받았던 경로로 교체해주시고 실행시키시면 됩니다. [Java] 그래픽 GUI AWT 사용법[Java] GUI 이벤트란 무엇인가?[Java] Swing 특징 및 구조 & 사용법 총정리
Swing이란? 자바의 JFC(Java Foundation Class)는 GUI 프로그래밍에 필요한 각종 킷을 모아놓은 것으로 현재는 GUI의 기능들을 구현할 수 있는 스윙, 2D, Drag&Drop 등을 지원합니다. 스윙을 사용하는 방법은 AWT와 거의 유사하나 AWT보다는 많은 컴포넌트 및 기능을 지원하고 있습니다. 스윙은 AWT와 달리 자바 프로그래밍으로 자체적인 제작된 컴포넌트이므로 플랫폼에 관계없이 모양이 동일하게 사용할 수 있습니다. Swing의 특징 1. 룩앤필(Look & Feel) 스윙에서 가장 획기적으로 바뀐 것 중에 하나가 컴포넌트의 화려함입니다. 이러한 외관(Look & Feel)을 프로그램을 실행하는 도중에 여러가지 형태로 바꾸어 사용 할 수 있는 기능을 제공합니다. 스윙은 순수한..
이벤트란? 이벤트(Event)라는 것은 윈도우 프로그래밍에서 어떤 특정한 행동이 발생한 그 자체를 의미합니다. 예를 들어 메뉴를 선택했다는가, 아니면 마우스를 클릭하거나, 윈도우의 크기를 조절하거나 등의 행위를 뜻하는 것입니다. 이런한 방식의 프로그래밍을 이벤트 중심의 프로그래밍이라고 하는데 윈도우 프로그래밍에서 중요한 개념 중에 하나입니다. 이벤트 소스(Event Source)는 이벤트가 발생할 수 있는 대상을 의미하고 그 대상으로부터 이벤트가 발생하면 발생된 이벤트를 처리해서 결과를 낼 수 있도록 해주는 것을 이벤트 핸들러(Event Handler)라고 합니다. 자바에서의 이벤트 처리 1. 프로그램이 실행중에 운영체제(OS)가 해당 프로그램에서 이벤트가 발생이 되는지를 검사한다. 2. 이때 이벤트가 ..
AWT란? 자바 언어가 탄생한 1995년에는 인터넷이 활성화되지 않았기 때문에 대부분의클라이언트 애플리케이션은 운영체제가 제공하는 네이티브 UI 컴포넌트를 이용하여 개발되었습니다. 그래서 Java1.0에 포함된 AWT는 운영체제가 제공하는 네이티브 UI컴포넌트를 이용하는 자바 라이브러리였죠. 그렇다보니 자바 애플리케이션이 실행되는 운영체제에 따라 UI의 모양이 서로다르고 종류도 제한적입니다. 하지만 비교적 쉽게 접할 수 있기에 콘솔에서 벗어나 Winodws개발을 하고싶은 자바개발자에게 입문코스?로 한번쯤은 해보고 넘어가는듯 합니다. AWT 구현순서 Container : 프로그램의 창의 역할을 합니다. 한개 이상의 컨테이너위에 컴포넌트들이 올려질영역입니다. (ex Frame, Panel, Dialog 등등..
자바에서 현재 날짜와 시간을 출력해주는 방법은 아주 다양합니다. 그 다양한 방법중에서 대표적으로 3가지가 주로 사용되고 있죠. Date객체를 사용하는 방법, Calendar클래스의 getInstance() 메서드를 활용하는 방법, System클래스의 currentTimeMillis() 메스드를 활용하는 방법이 바로 그것입니다. 이번 포스팅에서는 현재날짜, 현재시간을 원하는 형태로 포맷팅하여 출력하는 방법에 대해 알아보도록 하겠습니다. 1. Date객체를 활용하는 방법 SimpleDateFormat format1 = new SimpleDateFormat ( "yyyy-MM-dd HH:mm:ss"); SimpleDateFormat format2 = new SimpleDateFormat ( "yyyy년 MM월..
ArrayList를 처음 배울때 만들어봤었던 콘솔 Stack , Pop입니다. ArrayList의 add메서드와 remove메서드를 활용하면 쉽게 구현이 가능합니다. Main.java import java.util.Scanner; public class Main { public static void main(String[] args) { Queue qu = new Queue(); Stack st = new Stack(); while(true){ System.out.println("1.스택 2.큐"); Scanner sc = new Scanner(System.in); int select = sc.nextInt(); switch (select) { case 1: System.out.println("1.푸쉬 ..
자바를 초창기때 배웠을때 만들어봤었던 콘솔 성적관리 프로그램입니다. 지금 보면 정말 별거아니지만 그 당시 밤을 새워가며 열심히 코딩했었던 기억이 나네요. 그때가 정말 그립습니다. ㅎㅎㅎ 프로그램 구조는 HashMap 이런식으로 되어있습니다. Student클래스에 학생성적의 정보를 담아두고 Map을 put하거나 remove하는 방식입니다. Main.java package CollectionScore; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); Score score = new Score(); int i=0; while(true){ ..
10개의 문자열을 입력받고 알파벳(사전) 순으로 정렬하는 문자열을 변형하는 알고리즘입니다. 문자열을 입력하면 알파벳순으로 정렬하여 출력하는 알고리즘 #include #include #include int convert_string(const void *a, const void *b) { return strcmp((char *)a, (char *)b); } int main() { char s[10][8]; for(int i=0;i
배열의 최대값 최소값 구하기 For문을 활용한 방법 //최대값 최소값을 구할 int배열 int array[] = {4,3,2,1,10,8,7,6,9,5}; int max = array[0]; //최대값 int min = array[0]; //최소값 for(int i=0;i
배열이란 동일한 자료형으로 선언된 데이터 공간을 메모리 상에 연속적으로 나열하여 데이터 관리의 효율성을 높이는 것입니다. 변수는 한개의 데이터만 저장할 수 있습니다. 따라서 저장해야 할 데이터의 수가 많아지면 그만큼 많은 양의 변수를 선언해줘야하는 비효율성이 발생하죠. 그렇기에 좀 더 효율적인 방법이 필요한데 이것이 배열입니다. 배열은 같은 타입의 데이터를 연속된 공간에 나열시키고 각 데이터에 인덱스(index)를 부여해 놓은 자료구조입니다. 여러가지 배열 선언 //int 타입 배열 선언 int[] i_array; int i_array[]; //배열 생성후 초기화하면 배열의 주소가 할당된다. int[] i_array = new int[8]; //초기값 0 String[] s_array = new Stri..
티스토리도 드디어 보안접속 SSL이 적용이 되었습니다. 구글의 정책중의 SSL 웹페이지를 상위로 노출시켜주는 알고리즘이 있기에 이번 패치를 계기로 구글에서 좀 더 많은 유입이 되었으면 하는 소망입니다. 제가 사용하고 있는 스킨은 FastBoot라는 스킨입니다. 이 스킨은 몇년째 패치가 중단되어 제가 임의로 소스코드를 계속 수정해가며 사용하고 있는데요. 얼마전 저와같은 FastBoot스킨 사용자께서 FastBoot스킨 SSL적용방법에 대해 물으시기에 포스팅으로 방법을 자세히 소개해드리고자 합니다. 티스토리 FastBoot스킨 Https 적용하기(SSL) 1. 블로그관리 -> 블로그에서 보안접속을 "사용합니다"로 바꿔주고 변경사항 저장을 누릅니다. 2. 이렇게 해주면 블로그는 https로 적용이 되는데요. ..
BufferedReader/BufferedWriter는 Buffer에 있는 IO 클래스입니다. 입력된 데이터가 바로 전달되지 않고 중간에 버퍼링이 된 후에 전달되됩니다. 출력도 마찬가지로 버퍼를 거쳐서 간접적으로 출력장치로 전달되기에 시스템의 데이터처리 효율성을 높여주며 버퍼스트림을InputStreamReader / OutputStreamWriter를 같이 사용하여 버퍼링을 하게 되면 입출력 스트림으로부터 미리 버퍼에 데이터를 갖다 놓기 때문에 보다 효율적인 입출력이 가능합니다. BufferedReader Java를 처음 접하시는 분들이 주로 받는 입력방식은 Scanner입니다. Scanner를 통해 입력을 받을경우 Space Enter를 모두 경계로 인식하기에 입력받은 데이터를 가공하기 매우 편리합니다..