본문 바로가기

ALL238

JAVA ArrayList, HashMap, for each, contains, isEmpty() import java.util.ArrayList; public class ArrayListMain { public static void main(String[] args) { // 이름을 저장할 array 를 만든다. // array 는 생성할때, 갯수를 꼭 정해놓고 생성해야 한다. String[] nameArray = new String[10]; int[] numArray = new int[7]; // 위의 array(배열)는, 정해진 갯수 이상으로는 // 데이터 추가가 불가!! // 따라서, 갯수 제한없이 데이터를 마음대로 // 추가할수도 있고 삭제할수도 있는것이 ArrayList 다! // 담고싶은 데이터를 안에 적어줘야 한다. ArrayList nameList = new ArrayList(.. 2023. 1. 25.
Arduino 기초 UNO 보드(정격 5V) 디지털 입출력 0 , 1 아날로그 입출력 == 볼륨조절기 같은것 보드의 ~ 표시가 아날로그 입출력 가능한 단자임. GND(접지 , 그라운드, -극) 전류의 흐름 양(+) => 음(-) 전위차로 전압이 결정됨. 예시 ) 전지의 높이 pinmode(1, out) // 1번핀을 출력으로 사용하겠다. for (int i = 0 ; i < 3 ; i++){} (아두이노는 C, C++ 문법을 사용 , 자바와 동일) 저항 색띠 계산 4색 ( 십의자리,일의자리, 배수,오차) 5색 (백의자리,십의자리,일의자리,배수,오차) led램프의 허용전류 2023. 1. 25.
JAVA 정수 및 실수를, 클래스로 생성하는 방법 // 문자열을 숫자로 변환, 숫자를 문자열로 변환하는 방법 // 문자열을 처리하는, 함수들 public class StringMain { public static void main(String[] args) { // TODO Auto-generated method stub // 문자열 생성 2가지 방법 String str1 = "Hello"; String str2 = new String("java"); // 정수, 실수 등을 클래스로 생성하는 방법 int num1 = 5; Integer num2 = 5 ; System.out.println(num1); System.out.println(num2); System.out.println(num1+num2); Float num3 = 3.0f; float num4 = 4f; double num5 = 3.11; Double num6 = 5.3; // 문자.. 2023. 1. 25.
Web hacking 전체적인 그림 # 환경 가상머신 (버츄얼박스이용) 가상화 ON 칼리리눅스 버츄얼박스 버전 이용 # 버츄얼 셋팅 칼리리눅스 가져오기 usb1.1 (2.0 가끔에러) 네트워크 브릿지 환경설정 - 가상머신 - 호스트 키 조합 shift ctrl # 칼리리눅스 셋팅 ifconfig 아이피로 연결이 되었는지 확인. ping 8.8.8.8 데이터 정상적으로 나가는지 확인 -루트 계정 접속 $ sudo su - 기본 pass = kali passwd (새로운 비밀번호) -$ apt-get update poweroff(종료) id root pass입력(접속) # 타겟 설정(취약한서버1) kioptrix: LEVEL 1 (연습사이트) 다운 버츄얼박스 가상 하드디스크 추가안함 설정 - 디스크(다운받은파일)- 네트워크(브리지) # 취약한.. 2023. 1. 25.
JAVA interface, static final(상수), implements 인터페이스(interface)란? 자식 클래스가 여러 부모 클래스를 상속받을 수 있다면, 다양한 동작을 수행할 수 있다는 장점을 가지게 될 것입니다. 하지만 클래스를 이용하여 다중 상속을 할 경우 메소드 출처의 모호성 등 여러 가지 문제가 발생할 수 있어 자바에서는 클래스를 통한 다중 상속은 지원하지 않습니다. 하지만 다중 상속의 이점을 버릴 수는 없기에 자바에서는 인터페이스라는 것을 통해 다중 상속을 지원하고 있습니다. 인터페이스(interface)란 다른 클래스를 작성할 때 기본이 되는 틀을 제공하면서, 다른 클래스 사이의 중간 매개 역할까지 담당하는 일종의 추상 클래스를 의미합니다. 자바에서 추상 클래스는 추상 메소드뿐만 아니라 생성자, 필드, 일반 메소드도 포함할 수 있습니다. 하지만 인터페이스(.. 2023. 1. 20.
JAVA abstract(추상적인) abstract 정의 : 구체적이지 않은 함수 / 메소드의 이름만 생성하고 내용은 없다는 것. (대부분의 프레임워크에 사용되는 기법이라고 함) 특징: 1. abstract 메소드를 정의하면 클래스 이름도 반드시 abstract 을 정의해야함. 2. abstract 클래스는 반드시 abstract 메소드만 있는것은 아니고 일반 메소드와 공존할수있다. 3. abstract 메소드를 상속받는 클래스는 반드시 오버라이딩으로 abstract메소드를 사용해야만 함. 사용 예시: 2023. 1. 20.
JAVA 수평 상속, 수직 상속 수평상속 : 하나의 부모클래스를 수평적으로 받는자식클래스들 수직상속 : 할아버지 클래스를 부모의 클래스가 받고, 부모의 클래스를 자식클래스가 받아서 결국 자식클래스는 할아버지 클래스도 포함하는 개념 상속 Tip. 툴을 잘활용하자 빨간줄 나온것 누르면 자동으로 다 생성해줌 (생산성향상) 2023. 1. 20.
JAVA Method Overriding, super 키워드 위그림과 같은 클래스를 만들것이다 보아하니 겹치는부분(중복)이 많다. 그런것들은 상속의 개념으로 부모로 만들고 물려주면 된다. 때문에 비슷한것들을 묶을 부모클래스 person을 만들고. 물려줄 자식클래스들을 만든다. Person의 코드를 보자 package model; public class Person { protected int num; protected String name; protected String dept; protected String address; } 우선 기본적인 공통사항을 작성하고. 교수 클래스를 만들려고 보니. 공통사항 외에 과목이 보인다. 때문에 Professor(상속받을 클래스)로 이동해서 다음과 같이 과목들을 받을 subjects 리스트 멤버변수를 생성했다. package .. 2023. 1. 19.
JAVA 상속 상속은 멤버변수 뿐만아니라 메소드 까지도 받는다. 자세한 내용은 아래 코드를 참조 cpu의 실행 순서를 보자 상속을 받은 자식 클래스를 호출할때 부모의 클래스를 먼저 실행한 후에 자식클래스가 실행된다는것. 상속의 상속의 상속도 된다. 2023. 1. 19.
JAVA getter setter 프라이빗 멤버변수에 해당 데이터를 할당 프라이빗 멤버변수에 값을 변경하거나 가져오려면 어떻게 해야할까? 결론은 : 이렇게 만들고 이렇게 호출하면 된다. 그런데 문제는 귀찮다. 때문에 툴에서는 해당 기능을 제공한다. getter / setter 생성할곳에 우클릭 하면 다음과 같이 나온다. 멤버변수만 확인되고 Generate 하면 자동으로 getter setter 를 만들어준다. 번외로 안드로이드 스튜디오도 해당기능이 있다. 2023. 1. 19.
JAVA 메소드가 호출->실행 될때 메모리의 상태 / 접근제어자 / 클래스의 멤버변수 데이터를 셋팅하는 방법3가지 / 멤버변수와 로컬변수의 차이점 src 폴더의 구조를 보자 패키지(폴더같은것)가 2개 data, main 패키지별로 파일이 1개씩 있다. Member, AccessMain data 패키지 안의 Member 클래스를 main 패키지 안에 AccessMain 에서 호출했을때 public을 사용하지 않았다면 패키지가 다르므로 호출할수가없다. 이런게 접근제어자 라고하는것인데 접근제어자를 아무것도 설정하지않았다면 디폴트 접근제어자라고 하고 이는 같은 패키지 내에서는 정상작동하지만 패키지가 다르면 작동하지않는다. 멤버변수는 간단히 얘기하면 클래스 내에 속하는 변수다. 클래스에서 정의한 메소드(함수)안에 파라미터나 변수는 로컬변수라고 하고 이는 실행될때 스택영역에 잠시 생겼다가 메소드 전체가 실행되면 다시 사라진다. 자세한 내용은 아래 Member.. 2023. 1. 19.
JAVA 생성자란? 생성자 사용법 / 생성자로 메소드 오버로딩하기 요약: public class Member {} 이것은 자바의 기본 클래스 구조이다. Member m1 = new Member(); 이와같이 객체를 생성하는것이 기본인데 어떻게 이같은것이 동작하는가 ? 사실 클래스 안에는 public class Member { Member(){} // 이게 숨어있다. (디폴트 생성자) } 생성자는 오버로딩도 된다. 단, 디폴트 생성자도 눈에 보이게 선언해야지만 할수있다. 그럼 왜 오버로딩을 할까? 코드를 편하게 한줄로 쓰기위함. 자세한 내용은 아래 그림을 참조 2023. 1. 19.