전체 글787 [C#]타입 변환 및 타입 캐스팅(Type Conversion and Type Casting) 타입 변환 및 타입 캐스팅 타입 변환 또는 타입 캐스팅은 데이터 타입을 다른 데이터 타입으로 변경하는 작업이라고 말할 수 있습니다. 타입 변환은 두 데이터 타입이 서로 호환될 경우에만 가능하며, 호환되지 않은 경우 InvalidCastException 예외가 발생합니다. 변수는 선언 후 다른 데이터 타입으로 다시 선언할 수 없습니다. 따라서 변수의 타입과 다른 타입의 값을 변수에 할당할 수 없습니다. 예를 들어 다음 예제를 살펴봅시다. C#에서 int 타입으로 선언된 변수는 정수형 값만 가질 수 있습니다. 문자열 값은 int 타입에 호환되는 값이 아니므로 다음과 같이 오류가 발생합니다. class Program { static void Main(string[] args) { int num = 10; nu.. C# 2022. 6. 21. [Java]익명 내부 클래스와 람다식의 차이점 이번 포스팅은 익명 내부 클래스(Anonymous Inner Class)와 람다식(Lambda Expression)의 차이점에 대해 소개합니다. 익명 내부 클래스 익명 내부 클래스는 이름이 없는 클래스입니다. 특정 작업을 위해 메서드를 오버로드하거나 기능을 확장해야 하는 경우 상속 없이 인스턴스화 할 수 있습니다. 익명 내부 클래스는 일반적으로 추상/구현 클래스 또는 인터페이스를 구현합니다. 익명 내부 클래스 예제 1. 정렬 다음 예제는 String 타입의 ArrayList를 정렬하기 위해 Comparator 인터페이스를 익명 내부 클래스를 사용하여 인스턴스화 합니다. public class Main { public static void main(String args[]) { // Comparator 인.. Java 2022. 6. 21. [Java]익명 클래스(Anonymous Class) 익명 클래스(Anonymous Class) 이번 포스팅에서는 Java의 익명 클래스에 대해 소개합니다. Java에서 다른 클래스 내에서 클래스를 정의할 수 있으며 정의된 클래스를 중첩 클래스라고 말합니다. 중첩 클래스는 이름을 설정하지 않고 생성할 수 있으며, 이름이 없는 중첩 클래스를 익명 클래스라고 합니다. 익명 클래스는 다른 클래스 내부에 정의되므로 익명 내부 클래스라고 말하기도 하며, 다음과 같이 정의됩니다. class OuterClass { // 익명 클래스 정의 object = new Type(parameterList) { // 익명 클래스의 내부 } } 위 예제의 object는 런타임에 익명 클래스의 객체를 생성하며, 익명 클래스는 일반적으로 하위 클래스를 확장하거나 인터페이스를 구현합니다... Java 2022. 6. 21. [Java]중첩 클래스 및 내부 클래스(Nested Class and Inner Class) 중첩 클래스 및 내부 클래스(Nested Class and Inner Class) 이번 포스팅에서는 Java의 중첩 및 내부 클래스에 대해 소개합니다. Java에서는 다른 클래스 내에서 클래스를 정의할 수 있습니다. 다른 클래스 내에 정의된 클래스는 중첩 클래스(Nested Class)라고 하며 다음과 같습니다. class OuterClass { // ... class NestedClass { // ... } } 비정적 중첩 클래스(내부 클래스) 비정적 중첩 클래스는 내부 클래스라고 말하기도 하며, static 키워드를 사용하지 않고 다른 클래스 내에 정의된 클래스입니다. 내부 클래스는 외부 클래스의 멤버에 접근할 수 있습니다. 내부 클래스는 외부 클래스 내부에 존재하므로 내부 클래스를 인스턴스화하려면 .. Java 2022. 6. 21. [Java]ArrayList 초기화 방법 ArrayList 초기화 방법 이번 포스팅은 Java의 ArrayList를 초기화하는 방법을 소개합니다. add() 메서드 add() 메서드를 사용하여 ArrayList를 초기화할 수 있습니다. public static void main(String args[]) { ArrayList stringArrayList = new ArrayList(); stringArrayList.add("One"); stringArrayList.add("Two"); stringArrayList.add("Three"); ArrayList integerArrayList = new ArrayList(); integerArrayList.add(1); integerArrayList.add(2); integerArrayList.add(.. Java/컬렉션 2022. 6. 20. [Java]HashMap 특정 키가 존재하는지 확인하는 방법 HashMap 특정 키가 존재하는지 확인하는 방법 이번 포스팅은 Java의 HashMap 객체에서 특정 키가 존재하는지 확인하는 방법을 소개합니다. containsKey() HashMap 클래스의 containsKey() 메서드를 사용하여 특정 키가 존재하는지 확인할 수 있습니다. 키가 존재하면 true를 반환하고 그렇지 않으면 false를 반환합니다. 다음 예제는 containsKey() 메서드 호출 방법입니다. HashMap map = new HashMap(); map.put("One", 1); map.put("Two", 2); map.put("Three", 3); // Null 존재하는지 체크 boolean isExistsNull = map.containsKey(null); System.out.pr.. Java/컬렉션 2022. 6. 20. [C#]스레드 Join 메서드(Join Method of Thread) Join() 메서드의 필요성 Join() 메서드의 필요성을 이해하기 위해 다음 예제를 살펴봅시다. 다음 예제는 Main() 문에서 세 개의 스레드 객체를 실행합니다. class Program { public static void ThreadMethod001() { Console.WriteLine("ThreadMethod001() 메서드 호출"); Thread.Sleep(5000); Console.WriteLine("ThreadMethod001() 메서드 종료"); } public static void ThreadMethod002() { Console.WriteLine("ThreadMethod002() 메서드 호출"); Thread.Sleep(3000); Console.WriteLine("ThreadMet.. C# 2022. 6. 15. 블로그 수익 공개 하면 안되는 이유 2022년 5월을 마지막으로 더 이상 블로그 결산을 작성하지 않으려고 한다. 이때까지 블로그 결산을 작성한 이유는 블로그 성장 과정을 공개함으로써 꾸준히 하면 성장할 수 있다는 것을 증명하기 위해서였는데, 회사 업무가 많아지다 보니 "블로그를 꾸준히 운영할 수 있을까?"라는 걱정이 들었다. 걱정은 현실로 다가왔고 2022년 6월 5일 이후 블로그가 정체되었다. 아무튼 현재 내 블로그는 현재 성장이 멈췄다. "그래서 네 블로그랑 수익 공개하는 거랑 무슨 상관인데?"라고 생각하시는 분들에게 블로그 수익을 공개하면 안 되는 이유를 설명하겠다. 대부분의 블로거들이 수익을 공개하는 이유는 주로 두 가지 이유다. 1. 블로그 성장 과정을 기록 2. 자랑 1. 블로그 성장 과정을 기록 블로그 성장 과정을 기록하는 분.. 티스토리/티스토리 가이드 2022. 6. 15. [C#]스레드 상태 확인 IsAlive 프로퍼티 IsAlive 프로퍼티는 현재 스레드의 실행 상태를 불리언 값으로 반환합니다. 스레드가 시작되었고 종료되거나 중단되지 않은 경우 true를 반환하고 그렇지 않은 경우 false를 반환합니다. 즉, 스레드가 실행 중이면 true, 그렇지 않으면 false입니다. ThreadState 프로퍼티 ThreadState 프로퍼티를 사용하여 현재 스레드의 실행 상태를 확인할 수 있습니다. 불리언 값을 반환하는 IsAlive 프로퍼티와 달리 ThreadState프로퍼티는 ThreadState 열거형을 반환합니다. 따라서, ThreadState를 사용하기 전에 C#의 스레드 생명주기를 이해할 필요가 있습니다.(프로그래밍 언어마다 스레드 생명주기가 다릅니다.) 이번 포스팅에서는 간략한 Thread.. C# 2022. 6. 6. [C#]파일 존재 여부 확인 Exists() 메서드 C#에서 파일이 존재하는지 확인할 수 있는 몇 가지 방법이 존재합니다. 그중 가장 많이 사용하는 방법으로 System.IO 네임스페이스에 존재하는 File 클래스의 Exists() 메서드를 사용하는 것입니다. if(File.Exists(file_path)) { // 파일이 존재하는 경우 } else { // 파일이 존재하지 않는 경우 } Exists() 메서드는 string 타입의 파일 경로를 매개 변수로 사용합니다. 파일이 존재하면 true를 반환하고 파일이 없거나 접근할 수 있는 권한이 없으면 false를 반환합니다. 경로가 유효하지 않거나 null 및 문자열 길이가 0인 경우에도 false를 반환합니다. Exists() 메서드 예제 다음은 Exists() 메서드 예제에서 사용.. C# 2022. 6. 6. [C#]base 키워드 base 키워드 파생 클래스(혹은 자식 클래스)에서 기본 클래스(혹은 부모 클래스)의 생성자, 필드, 메서드를 접근해야 하는 경우 base 키워드를 사용하여 접근할 수 있습니다. base 키워드는 메서드, 프로퍼티, 생성자 내에서만 사용할 수 있으며, static으로 선언된 정적 메서드에서는 사용할 수 없습니다. base 키워드는 기본 클래스와 파생 클래스에 동일한 이름의 필드가 존재하는 경우 유용하게 사용할 수 있습니다. base 키워드의 유용성 기본 클래스와 파생 클래스에 동일한 이름의 필드가 존재하는 경우 기본 클래스의 필드를 접근하는지 파생 클래스의 필드를 접근하는지 구분할 수 있습니다. 부모 클래스에서 작성한 소스코드를 복제할 필요가 없습니다. 기본 클래스의 필드 및 메서드 접근 다음 예제는 파.. C# 2022. 6. 5. [C#]잠금 및 Lock 키워드 멀티스레딩에서 공유 리소스 접근 멀티스레드로 구현된 애플리케이션에서 여러 개의 스레드 객체가 공유 리소스를 접근하는 것은 중요한 작업입니다. 예를 들어 세 개의 스레드 객체가 존재하고 abcd.txt 파일을 접근한다고 가정합니다. Thread1은 abcd.txt 파일에 데이터를 작성합니다.(Write) Thread2는 abcd.txt 파일의 데이터를 읽습니다.(Read) Thread3는 abcd.txt 파일을 제거합니다.(Delete) 세 개의 스레드 객체가 동일한 시간에 abcd.txt 파일을 접근하여 각자의 작업을 수행하면, Thread1이 abcd.txt 파일에 데이터를 작성하는 도중 Thread3가 abcd.txt 파일을 제거했으므로 애플리케이션이 제대로 동작하지 않을 수 있습니다. 이러한 문제가.. C# 2022. 6. 5. 이전 1 ··· 29 30 31 32 33 34 35 ··· 66 다음