SpringbootとMySQLを使用した全文検索機能の実装
この文書では、SpringbootとMySQLを使用して基本的な全文検索機能を実装する方法を紹介します。
1. MySQL Full-Text 対応テーブルの作成
MySQLで全文検索を使用するには、該当するテーブルにFULLTEXTインデックスを作成する必要があります。以下の例のように必要なカラムにFULLTEXTインデックスを作成します。
CREATE TABLE articles (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(200),
content TEXT,
FULLTEXT (title, content)
) ENGINE=InnoDB;
!--
-->
(adsbygoogle =...
Showing posts with label java. Show all posts
Showing posts with label java. Show all posts
Thursday, September 7, 2023
Tuesday, September 5, 2023
Variable Swap: How to swap two variables without a temporary variable
The following is a method of directly changing the values of variables 'a' and 'b' without using a temporary variable. This example is written in JAVA, but as most languages support bitwise operations, using this method can reduce unnecessary variable declarations and potentially improve performance.
!--
-->
(adsbygoogle =...
変数のスワップ:一時変数を使わずに二つの変数の値を交換する方法
以下は、一時変数を使わずに'a'と'b'を直接交換する方法です。この例はJAVAで書かれていますが、ほとんどの言語がビット演算をサポートしているため、この方法を使用すると不要な変数宣言を減らし、パフォーマンス向上が期待できます。
!--
-->
(adsbygoogle = window.adsbygoogle || []).push({});
/*一時変数を使わずに'a'と'b'を直接交換する方法。
※^演算子(排他的 - 異なる場合のみtrueを返す)*/
int a = 1; // 0000 0001
int b = 2; // 0000 0010
a = a ^ b; //結果:a=2、b=1;
しかし、可読性を考えると、一時変数を使う方が良い選択かもしれませ...
Friday, September 1, 2023

FCM(Firebase Cloud Messaging)の開発中、アプリが実行中かどうかを判別するための論理が必要でした。しかし、アプリの実行状態を区別するのは私の視点からはかなり難しいことでした。
そのため、状態のチェックを比較的容易に行えるように、以下のコードを作成しました。同様の考慮事項に直面している他の人もいるかもしれないと思い、共有します。
android activity stack check
!--
-->
(adsbygoogle = window.adsbygoogle || []).push({});
Applicationを継承したクラスで、onCreateメソッド内に上記のように記述できます。activityStackCnt...

During the development of FCM (Firebase Cloud Messaging), I needed logic to determine whether the app was running or not. The problem was that distinguishing the app's execution state proved to be quite tricky from my perspective.
So, I created the following code to make state checks relatively easy....
Chapter 1: 포인터란?
Chapter 2: 자바에서 참조 호출 방식이란?
Chapter 3: 포인터와 참조 호출 방식 비교
!--
-->
(adsbygoogle = window.adsbygoogle || []).push({});
Chapter 1: 포인터란?
포인터는 C언어에서 매우 중요한 개념 중 하나입니다. 포인터는 메모리의 주소를 저장하는 변수로, 다른 변수의 주소를 가리키는데 사용됩니다. 이를 통해 프로그래머는 메모리를 보다 효율적으로 관리할 수 있습니다.
포인터의 선언은 다음과 같이 이루어집니다:
int *ptr; // 정수형 포인터 선언
위 코드에서 '*' 기호는 ptr이 포인터임을 나타냅니다. 즉, ptr은 정수형 데이터의 주소를...
Chapter 1: What is a Pointer?
Chapter 2: Call by Reference in Java
Chapter 3: Comparing Pointers and Call by Reference
!--
-->
(adsbygoogle = window.adsbygoogle || []).push({});
Chapter 1: What is a Pointer?
A pointer is a crucial concept in the C language. It's a variable that stores the memory address and is used to point to the address of another variable. This allows programmers...
Chapter 1: ポインタとは?
Chapter 2: Javaにおける参照渡しとは?
Chapter 3: ポインタと参照渡しの比較
!--
-->
(adsbygoogle = window.adsbygoogle || []).push({});
Chapter 1: ポインタとは?
ポインタは、C言語における重要な概念です。ポインタはメモリアドレスを格納する変数であり、他の変数のアドレスを指すために使用されます。これにより、プログラマはメモリを効率的に管理することができます。
ポインタの宣言は次のように行います:
int *ptr; // 整数型のポインタを宣言
上記のコードでは、'*'記号は'ptr'がポインタであることを示しており、つまり'ptr'は整数型のデータのメモリアドレスを格納できる変数であることを意味しています。
ポインタとアドレス演算子
C言語では、'&'演算子は「アドレスの」演算子とも呼ばれます。これを使用して変数のメモリアドレスを取得できます。
int...
Monday, August 21, 2023
왜 Checkstyle을 사용해야 하는지 이해하기
자바 코드를 작성할 때 코드의 일관성과 가독성을 높이는 것은 매우 중요합니다. 여러 개발자가 작업할 때 코드 스타일의 차이로 인해 혼동이 발생하거나 유지보수가 어려워질 수 있습니다. 이러한 문제를 해결하기 위해 Checkstyle과 같은 코드 규칙 검사 도구가 필요합니다.
Checkstyle은 자바 소스 코드를 스캔하여 원하는 규칙에 맞추어 코드의 일관성을 높여주는 도구입니다. 코드 스타일, 형식, 명명 규칙, 라인 길이, 주석 형식 및 복잡도 등 다양한 측면에서 검사를 지원합니다. 또한, 개발자가 커스텀한 규칙을 작성하여 적용할 수도 있습니다.
Checkstyle 사용의 장점은 다음과 같습니다:
코드의 일관성과 가독성 향상
코드 리뷰를 통한...
Understanding Why to Use Checkstyle
When writing Java code, it is crucial to increase the consistency and readability of your code. When multiple developers work on a project, differences in code styles can cause confusion and make maintenance more difficult. This is where code rule inspection tools like Checkstyle come in handy.
Checkstyle is a tool that scans Java source code to improve code consistency...
Checkstyleの使用理由を理解する
Javaコードを書く際には、コードの一貫性と可読性を向上させることが重要です。複数の開発者がプロジェクトに取り組む場合、コードスタイルの違いが混乱を招き、メンテナンスが難しくなることがあります。こうした状況で、Checkstyleのようなコードルール検査ツールが役立ちます。
Checkstyleは、Javaソースコードをスキャンして、望ましいルールに従ってコードが記述されていることを保証することで、コードの一貫性を向上させるツールです。コードスタイルやフォーマット、命名規則、行の長さ、コメントのスタイル、複雑さなどのさまざまな分野での検査に対応しています。また、開発者はカスタムルールを作成して適用することができます。
Checkstyleを使用する利点は以下の通りです。
コードの一貫性と可読性の向上
コードレビューによる時間の節約
...
자바에서 unsigned int를 사용하는 이유와 개요
컴퓨터 프로그래밍에 있어서 정수형 자료형(integer)은 프로그램의 변수로 많이 사용됩니다. 이러한 정수형 자료형에는 부호 있는 형태(signed)와 부호 없는 형태(unsigned)가 있습니다. 그러나 자바(Java)에서는 기본적으로 unsigned int(부호 없는 정수)는 지원하지 않습니다. 이러한 이유로 개발자들은 다양한 방법을 사용하여 unsigned int를 구현해야 합니다. 이 장에서는 자바에서 unsigned int를 사용하는 이유와 개요를 살펴보겠습니다.
부호 없는 정수(Unsigned Integer)는 양수와 0만 표현이 가능합니다. 이와는 반대로, 부호 있는 형태의 정수는 양수와 음수, 그리고 0을 표현할 수 있습니다. 부호...
Reasons and Overview for Using Unsigned Int in Java
In computer programming, integer data types are widely used as variables in programs. These integer data types come in signed and unsigned forms. However, Java does not support unsigned int (unsigned integer) by default. For this reason, developers need to implement unsigned int using various methods. In this chapter, we will explore the reasons...
JavaでUnsigned Intを使う理由と概要
コンピュータプログラミングでは、整数データ型がプログラムの変数として広く使われています。これらの整数データ型には、符号付きバージョンと符号無しバージョンがあります。しかし、Javaではデフォルトでunsigned int(符号なし整数)には対応していません。 このため、開発者はさまざまな方法でunsigned intを実装する必要があります。 この章では、Javaでunsigned intを使用する理由と概要を説明します。
符号無し整数は、正の数と0のみ表すことができます。一方、符号付き整数は、正の数、負の数、および0に対応しています。符号付き整数では、バイトの一部に負の値を記憶するため、同じサイズの整数変数でもunsigned intの方が大きな値を格納することができます。
Javaでは、整数はintデータ型を使って格納できます。intデータ型は32ビットのサイズがあり、符号付き整数では約-2,147,483,648から2,147,483,647までの値を表すことができます。ただし、unsigned...
Thursday, July 13, 2023
LocalDateTime.now()を使用する際、ミリ秒を削除する方法(remove milliseconds)
LocalDateTime.now()を使用して、日付と時間をyyyy-MM-dd HH:mm:ssの形式で処理すると、同じ時間であっても1秒のずれが生じることがあります。
調査の結果、0.xxxx秒のミリ秒が四捨五入されていることがわかりました。多くの人々はDateTimeFormatterを使用してフォーマットを調整することを推奨していますが、StringではなくLocalDateTimeオブジェクトが必要な場合は、面倒な作業になることがあります(例:変換して再変換)。
しかし、以下のようなコードを使用すれば、作成時からミリ秒を削除する簡単な方法があります。
LocalDateTime.now().withNano(0)
上記のように.withNano(0)オプションを使用すると、ミリ秒がない時間が生成されます。
さらなる詳細については、以下のリンクをご参照ください。
!--
-->
(adsbygoogle...
How to Exclude Milliseconds from LocalDateTime.now()
When processing dates and times with LocalDateTime.now() in the yyyy-MM-dd HH:mm:ss pattern, you might experience a slight discrepancy of one second, even if the times seem identical.
This discrepancy happens due to the rounding of 0.xxxx second milliseconds. Some people suggest using DateTimeFormatter to modify the format. However, this could be...
Tuesday, June 13, 2023
JavaでIntデータをUnsigned Intに変換する方法
Javaはネイティブに符号なしデータ型をサポートしていません。そのため、intデータを符号なし表現値に変換するための特定の方法が必要です。
IntデータをLongデータ型に変換する方法
最初に、intデータをlongデータ型に変換します。その後、0xFFFFFFFFLとビット演算を実行してintデータを符号なし表現に変換します。以下はこの実装の例です:
!--
-->
(adsbygoogle = window.adsbygoogle || []).push({});
public class UnsignedIntConverter {
public static void main(String[] args) {
int intValue = -12345;
long unsignedValue...
Converting Int to Unsigned Int in Java
In Java, there is no built-in support for unsigned data types. Thus, we need to use a specific method for converting int data to its unsigned representation.
How to Convert Int Data to Long Data Type
Firstly, we convert the int data to the long data type. Then, we perform a bitwise operation with 0xFFFFFFFFL to convert int data to its unsigned representation....
Java에서 Int 데이터를 Unsigned Int로 변환하는 방법
Java에서는 기본적으로 unsigned 데이터 타입을 지원하지 않습니다. 그렇기 때문에 int 데이터를 unsigned 표현 값으로 변환하기 위한 특정한 방법이 필요합니다.
Int 데이터를 Long 데이터 타입으로 변환하기
첫 단계로, int 데이터를 long 데이터 타입으로 변환을 합니다. 그 후, 0xFFFFFFFFL과 비트 연산을 수행하여 int 데이터를 unsigned 표현으로 변환합니다. 아래는 이를 구현한 예제 코드입니다:
!--
-->
(adsbygoogle = window.adsbygoogle || []).push({});
public class UnsignedIntConverter {
public static...
Javaで整数をバイト配列に変換し、バイト配列を整数に変換する方法
Javaで整数をバイト配列に変換し、その逆を行う方法について説明します。以下は、これを実現するためのJavaコードです。
整数をバイト配列に変換するコード
!--
-->
(adsbygoogle = window.adsbygoogle || []).push({});
public byte[] intToByteArray(int value) {
byte[] byteArray = new byte[4];
byteArray[0] = (byte)(value >> 24);
byteArray[1] = (byte)(value >> 16);
byteArray[2] = (byte)(value >> 8);
byteArray[3] =...