[Java] 기본형 매개변수와 참조형 매개변수
·
Backend/Java
기본형 매개변수와 참조형 매개변수Java에서는 매서드를 호출할 때 매개변수로 지정한 값을 메서드의 매개변수에 복사해서 넘겨준다. 매개변수의 타입이 기본형일 때는 기본형 값이 복사되겠지만, 참조형이면 인스턴스의 주소가 복사된다.메서드의 매개변수를 기본형으로 선언하면 단순히 저장된 값만 얻지만, 참조형으로 선언하면 값이 저장된 곳의 주소를 알 수 있기 때문에 값을 읽어 오는 것은 물론 값을 변경하는 것도 가능하다. 기본형 매개변수 - 변수의 값을 읽기만 할 수 있다. 참조형 매개변수 - 변수의 값을 읽고 변경할 수 있다.static void change(int x){...} - 기본형 매개변수 change 메서드에서 main 메서드로부터 넘겨받은 d.x의 값을 1000으로 변경했는데도 main메서드에서는 d..
[Java] 인터페이스 상속 실습 문제
·
Backend/Java
1. Customer 클래스이 클래스는 고객의 기본 정보를 저장하는 추상 클래스 이다.abstract class Customer { private String cname; private String city; private int age; // 생성자 public Customer(String cname, String city, int age) { this.cname = cname; this.city = city; this.age = age; } public abstract double applyDiscount(double totalAmount); public String getCname() { return cname;..
[Java] JVM 메모리 구조 / JVM 수행 과정
·
Backend/Java
JVM 메모리 구조응용프로그램이 실행되면, JVM은 시스템으로부터 프로그램을 수행하는데 필요한 메모리를 할당받고,JVM은 이 메모리를 용도에 따라 여러 영역으로 나누어 관리한다.그 중 3가지 주요 영역(method area, call stack, heap)이다. 1. Method Area (메소드 영역) - 프로그램 실행 중 어떤 클래스가 사용되면, JVM은 해당 클래스의 클래스파일(*.class)을 읽어서 분석하여 클래스에 대한 정보(클래스 데이터)를 이곳에 저장한다. 이 때, 그 클래스의 클래스 변수(class variable)도 이 영역에 함께 생성된다. 2. Heap (힙) - 인스턴스가 생성되는 공간. 프로그램 실행 중 생성되는 인스턴스는 모두 이곳에 생성된다. 3. call Stack (호출 ..
[Java] Class 변수와 메서드
·
Backend/Java
변수와 메서드class Variables{//클래스영역 int iv; //인스턴스변수 static int cv; //클래스변수(static변수, 공유변수) void method(){ //메서드영역 int lv = 0; //지역변수 }} 변수는 클래스변수, 인스턴스변수, 지역변수 세 종류가 있다. 변수의 종류를 결정 짓는 요소는 '변수의 선언된 위치'이므로 변수의 종류를 파악하기 위해서는 변수가 어느 영역에 선언되었는지를 확인하는 것이 중요하다. 멤버변수를 제외한 나머지 변수들은 모두 지역변수이다.멤버변수 중 static이 붙은 것은 클래스변수, 붙지 않는 것은 인스턴스변수이다. 변수의 종류선언위치생성시기클래스변수(class variable)클래스영역클래스가 메모리에 ..
[Java] Class 객체 배열
·
Backend/Java
객체 배열많은 수의 객체를 다뤄야 할 때, 배열로 다루면 편리하다.   객체 배열 안에 객체가 저장되는 것은 아니고, 객체의 주소가 저장이 된다. Tv tv1, tv2, tv3 -> Tv[] tvArr = new Tv[3]; 길이가 3인 객체 배열 TvArr을 생성하면, 각 요소는 참조변수의 기본값인 null로 자동 초기화된다. 객체 배열을 생성하는 것은, 객체를 다루기 위한 참조변수들이 만들어진 것일 뿐, 아직 객체가 저장되지 않았다.  Tv[] tvArr = new Tv[3]; //참조변수 배열(객체 배열)을 생성//객체를 생성해서 배열의 각 요소에 저장tvArr[0] = new Tv();tvArr[1] = new Tv();tvArr[2] = new Tv(); 배열의 초기화 블력을 사용하면, 간하게 ..
[Java] Class 란 / 인스턴스란 / 인스턴스의 생성과 사용
·
Backend/Java
객체지향언어코드의 재사용성이 높다.새로운 코드를 작성할 때 기존의 코드를 이용하여 쉽게 작성할 수 있다.코드의 관리가 용이하다.코드간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있다.신뢰성이 높은 프로그래밍을 가능하게 한다.제어자와 메서드를 이용해서 데이터를 보호하고 올바른 값을 유지하도록 하며, 코드의 중복을 제거하여 코드의 불일치로 인한 오동작을 방지할 수 있다.즉, `코드의 재사용성이 높고 유지보수가 용이하다.` 클래스클래스란 ? - 객체를 정의해놓은 것 - 각 객체의 설계도 또는 틀클래스의 정의 클래스란 객체를 정의해 놓은 것클래스의 용도 클래스는 객체를 생성하는데 사용된다.* 프로그래밍에서 객체는 클래스에 정의된 내용대로 메머리에 생성된 것을 뜻함 클래스를 정의하고 클래스를 통해 객..
[프론트엔드 테스트] 정적 분석
·
IT_STUDY/개인공부
프런트엔드 테스트의 범위 정적 분석 - 타입스크립트를 활용하는 정적분석은 버그를 조기에 발견할 수 있도록 한다. - 타입 추론은 런타임 작동을 예측해주기 때문에 아주 유용하다.타입 추론 : 명시적으로 타입을 지정하지 않아도 타입스크립트 컴파일러가 초기에 할당된 값을 바탕으로 변수의 타입을 추론한다. 예시 ) if 문 분기에 타입 추론이 적용되면 값을 안전하게 다룰 수 있다.function getMessage(name :string | undefined){ const a = name; if(!name){ return `Hello anonymous!`; } //if문 분기와 return으로 undefined가 아니라는 것이 판정된다. const b = name; //b : str..
[AWS] Git Repositories를 통해 Jenkins 서버 배포
·
IT_STUDY/개인공부
AWS 서버에서 열어서 한다는 가정하에..sudo apt update  - package 목록 업데이트 후 시작 sudo apt install apt-transport-https ca-certificates curl software-properties-common - Ubuntu 기반의 리눅스 배포판 추가 패키지를 설치하는 명령어 - 패키지들이 시스템에 설치되며, HTTPS 리포지토리 사용, 인증서 관리, 파일 다운로드, 소프트웨어 소스 추가 등의 작업을 수행할 수 있다. `apt=transpost-https` : HTTPS를 통해 패키지를 다운로드 할 수 있게 해주는 패키지이다. 기본적으로 APT는 HTTP를 사용하지만, HTTPS 리포지토리도 사용할 수 있도록 이 패키지를 설치한다.`ca-certif..