Bài 1: hướng dẫn cài đặt android studio

Khi bắt đầu học bất kì nền tảng hay ngôn ngữ mới nào thì công việc đầu tiên đó là cài đặt môi trường. Lập trình Android cũng vậy thôi. Khi cài đặt môi trường như cài đặt Android Studio thì đôi lúc sẽ phát sinh một số lỗi chỉ có trên máy tình của bạn. Bạn sẽ thắc mắc tại sao mình làm giống như các hướng dẫn trên mạng mà vẫn bị lỗi. Thật là khó chịu đúng không?

Nguyên nhân thường là do mỗi máy tính có cấu hình và được cài đặt khác nhau nên chắc chắn sẽ có chút khác biệt, mặc dù bạn thực hiện chính xác từng bước như họ hướng dẫn.

Bài viết này mình sẽ cố gắng hướng dẫn chi tiết nhất để đảm bảo bạn cứ thực hiện đủ các bước là có thể chiến được Android.

Cùng bắt đầu nhé!

I. Cài đặt Java (JDK)

Điều đầu tiên là bạn cần kiểm tra xem bạn đã cài đặt bộ phát triển Java (JDK) chưa?! Ngay cả khi bạn lên kế hoạch học phát triển ứng dụng Android bằng Kotlin, bạn vẫn cần cài đặt Java trên máy của mình.

Để kiểm tra, có lẽ cách dễ và tin cậy nhất là dùng Terminal

Bạn  mở Terminal và gõ lệnh: java -version. Nếu kết quả như bên dưới thì xin chúc mừng,  bạn không cần phải cài đặt JAVA nữa, máy của bạn đã cài nó rồi.

Nếu bạn không thấy như hình trên, thì có khả năng là bạn chưa cài đặt JDK. Terminal có thể sẽ hiện một số thông báo đại loại như: -bash: java: command not found hoặc có thể báo No Java runtime present, requesting install.

Nếu không may mà JDK chưa được cài đặt, bạn có thể tham khảo bài viết: JDK là gì? Hướng Dẫn Download và Cài Đặt JDK (Java Development Kit)

#2. Cài đặt Android Studio IDE

Cài đặt Android Studio trên hệ điều hành Window

Vì Google liên tục cập nhật nên phiên bản bạn thấy có thể rất mới hơn so với ảnh chụp màn hình ở đây.

Đầu tiên là bạn vào link sau để download Android Studio

Khi bạn nhấp vào nút Download Android Studio, bạn cần đồng ý với các điều khoản và điều kiện sử dụng

Sau khi đọc kỹ (các bạn có thực sự đọc không đấy?) thì tích vào Chấp nhận và chọn Download Android Studio For Window. Sau khi tải xuống hoàn tất, bạn có thể cài đặt Android Studio giống như cách bạn cài đặt bất kỳ chương trình nào khác.

Sau khi cài đặt kết thúc, bạn thử bật Android Studio lên xem nào!

Cài đặt Android Studio trên Linux/Ubuntu

Đối với các bạn sử dụng Ubuntu thì việc cài đặt có khác đôi chút. Nhưng theo cá nhân mình, thì khi đã quen với Ubuntu hay Linux nói chung thì việc cài đặt lại dễ hơn rất nhiều. Bạn chỉ việc copy lệnh vào của sổ terminal và Enter là xong.

Sau đây là các bước cài đặt Android Studio trên Ubuntu

Cài đặt bản JDK 6 or bản mới hơn

Cũng giống như Window, bạn cũng cần phải cài đặt JDK.

sudo add-apt-repository ppa:webupd8team/java 
sudo apt-get update 
sudo apt-get install oracle-java8-installer 
sudo apt-get install oracle-java8-set-default

Để chắc chắn bạn đã cài đặt thành công, mở terminal gõ lệnh sau để kiểm tra:

javac -version

Download và cài đặt Android Studio trên Ubuntu

Tương tự Window, bạn vẫn vào link download Android Studio. Trang web sẽ tự phát hiện hệ điều hành bạn đang sử dụng để hiển thị bản Android Studio tương ứng. Sau khi tải xong và giải nén nó ở đâu đó (ví dụ: thư mục home chẳng hạn).

Để bắt đầu cài đặt Android Studio, bạn mở terminal lên và chuyển đến thư mục android-studio/bin/ và chạy studio.sh như sau

cd android-studio/bin ./studio.sh

Bạn cần lựa chọn có muốn import thiết lập cài đặt Android Studio từ phiên bản bản bạn đã từng cài đặt trên máy hay không? Tốt nhất là cứ không chọn đi để cho nó mới. Sau đó nhấn vào OK.

Cuối cùng là cài đặt biến môi trường ANDROID_HOME trỏ đến thư mục cài đặt SDK Android của bạn

sudo gedit ~/.bashrcexport ANDROID_HOME=/home/user_directory/Android/Sdk
export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
export JAVA_HOME=/usr/lib/jvm/java-8-oracle

Kết quả sẽ “viên mãn” như sau

Hướng dẫn cấu hình Android Studio

Khi lần đầu bạn mở Android Studio thì bạn cần phải thiết lập một số cài đặt cơ bản.

Cũng đơn giản, chúng ta cứ làm từng bước một nhé.

Nhấn Next để chuyển sang màn hình Install Type. Toàn bộ quá trình này có thể sẽ mất vài phút

Đánh dấu vào ô Standard để Android Studio tự động cài đặt cấu hình và nhấn Next. Bạn sẽ được lựa chọn Giao diện. Mình chỉ thích mỗi màu trắng “nõn nà”, còn bạn có thể sẽ hợp với “tây đen” đấy

Chọn chủ đề xong thì nhấp vào Next thôi. Android Studio rất cẩn thận, nó sẽ hiện cửa sổ Verify Settings (Xác minh cài đặt), để bạn sẽ xác nhận những thiết lập

Nhấp vào Finish  để bắt đầu tải xuống các thành phần SDK.

Trong khi tải xuống, bạn có thể sẽ được nhắc nhập mật khẩu để cài đặt HAXM – một công cụ của Intel để tăng tốc máy ảo Android Virtual Devices

Vậy là bạn đã cài đặt xong rồi đấy

#3. Màn hình Welcome của Android Studio

Sau một vài phút, bạn sẽ có màn hình welcome, màn hình này như cổng vào để thiết lập mọi thứ Android.

Bạn vừa tải xuống Android Studio, tuy nhiên có thể đây không phải là phiên bản mới nhất. Chọn Configure/Check for Update ở cuối màn hình welcome để kiểm tra xem có bản cập nhật nào không.

Nếu có sẵn bản cập nhật, một cửa sổ như ảnh chụp màn hình bên dưới sẽ xuất hiện. Nhấp vào nút Update and Restart và để nó tự update và khởi động lại máy.

#4. Cài đặt trình quản lý Android SDK

Mỗi phiên bản Android đều có SDK (Software Development Kit) riêng để bạn tạo ứng dụng cho nền tảng Android. Nếu bạn thực hiện giống như các bước mình hướng dẫn ở trên thì mặc định bạn đã có SDK bản mới nhất rồi.

Tuy nhiên, bạn cũng nên biết cách cài đặt các phiên bản SDK khác, nó sẽ hỗ trợ bạn phát triển trên các phiên bản Android khác cũ hơn.

SDK còn cho phép bạn tạo máy ảo Android (AVD) theo cấu hình cá nhân của bạn nhằm mục đích thử nghiệm ứng dụng khi không có thiết bị thật

Từ màn hình welcome của Android Studio, chọn Configure/SDK Manager.

Bạn sẽ thấy một cửa sổ giống như bên dưới:

SDK Platforms là gì? Cách cài đặt SDK Platform

Bạn có thể hiểu đơn giản SDK Platform chính là bộ giả lập Hệ điều hành Android.

Ở Tab đầu tiên của cửa sổ này là SDK platform. Nó liệt kê các Android SDK platforms có sẵn để tải xuống.

Bật tùy chọn Show Package Details để nó hiển thị các thành phần SDK riêng lẻ

Lưu ý checkbox bên cạnh mỗi SDK platform; nó sẽ được chọn trước nếu như có bản cập nhật mới

Theo mặc định, Trình quản lý SDK cài đặt các gói và công cụ mới nhất. Hãy chọn SDK như được hiển thị trong ảnh chụp màn hình ở trên. Nếu bạn muốn cài đặt các SDK khác, chỉ cần chọn cái nào bạn muốn cài đặt.

Các công cụ SDK

Tab Công cụ SDK liệt kê các công cụ và tài liệu dành cho nhà phát triển cùng với các phiên bản mới nhất. Tương tự như tab đầu tiên, kiểm tra Show Package Details sẽ hiển thị các phiên bản có sẵn của các công cụ SDK.

Ba trong số các thành phần được chọn trong danh sách này, ví dụ: Android SDK Build-ToolsAndroid SDK Tools và Android SDK Platform-Tools. Chúng đều chứa các thành phần được thiết kế để hỗ trợ phát triển Android và hoạt động trên nhiều SDK. Lựa chọn mặc định trên tab này.

#5. Tổng kết

Như vậy, mình đã hướng dẫn khá chi tiết những điều cần thiết nhất để cài đặt Android Studio. Nếu trong quá trình cài đặt mà bạn vướng mắc chỗ nào thì comment bên dưới để mình hỗ trợ nhé. Bài viết sau trong khóa học tự học lập trình Android trong 24 giờ sẽ là hướng dẫn sử dụng các chức năng cơ bản của Android Studio. Khi bạn đã làm chủ được bộ công cụ này thì chúng ta sẽ bắt đầu code nhé.

Hi vọng khóa học này sẽ hữu ích với các bạn. Ủng hộ để mình có động lực ra tiếp bài viết sau nhé

source https://techacadamy.com/bai-1-huong-dan-cai-dat-android-studio/

Bài 7: khai báo mảng trong java

Mảng là tập hợp nhiều phần tử có cùng tên, cùng kiểu dữ liệu và mỗi phần tử trong mảng được truy xuất thông qua chỉ số của nó trong mảng. Chúng ta sử dụng mảng trong trường hợp muốn lưu trữ nhiều biến tương tự nhau chẳng hạn như danh sách các sinh viên trong một lớp.

Cách khai báo mảng:

<kiểu dữ liệu> <tên mảng>[];
hoặc
<kiểu dữ liệu>[] <tên mảng>;

Ví dụ: String danhSachSinhVien[]; hoặc String[] danhSachSinhVien;

Khai báo cùng lúc nhiều mảng có kiểu dữ liệu giống nhau.
int[] mang1, mang2, mang3;

Khởi tạo mảng

Không giống như trong C, C++ kích thước mảng trong Java được xác định khi khai báo. Để cấp phát bộ nhớ hay nói cách khác là kích thước cho mảng trong Java chúng ta cần dùng từ khóa new. Chẳng hạn để cấp phát vùng nhớ cho mảng gồm 10 số thực trong Java chúng ta khai báo như sau:

double mangSoThuc = new double[10];

Chúng ta có thể khởi tạo giá trị ban đầu cho các phần tử của mảng khi nó được khai báo.

Ví dụ:

int mangSoNguyen[] = {1, 2, 3};
char mangKyTu[] = {‘i’, ‘j’, ‘k’};
String mangChuoi[] = {"Le Van Teo", "Nguyen Van Ti", "Tran Minh Beo"};

Truy cập mảng Chỉ số mảng trong Java bắt đầu tư 0. Vì vậy phần tử đầu tiên có chỉ số là 0, và phần tử thứ n có chỉ số là n-1. Các phần tử của mảng được truy xuất thông qua chỉ số của nó đặt giữa cặp dấu ngoặc vuông ([]).

Ví dụ:

int arrInt[] = {1, 2, 3};
int x = arrInt[0]; // x sẽ có giá trị là 1.
int y = arrInt[1]; // y sẽ có giá trị là 2.
int z = arrInt[2]; // z sẽ có giá trị là 3.

Lưu ý: Trong nhưng ngôn ngữ lập trình khác (C chẳng hạn), một chuỗi được xem như một mảng các ký tự. Trong java thì khác, java cung cấp một lớp String để làm việc với đối tượng dữ liệu chuỗi cùng khác thao tác trên đối tượng dữ liệu này.

Để lấy chiều dài của mảng chúng ta sử dụng thuộc tính length.

Cú pháp: <ten mang>.length

Ví dụ:

public class Main {
    public static void main(String[] args) {
        int[] numbers = {1, 2, 3};
        System.out.println(numbers.length);
    }
}

Mảng đa chiều

Khai báo mảng n chiều trong java
<Kiểu dữ liệu>[][]…[] <Tên mảng>;
hoặc
<Kiểu dữ liệu> <Tên mảng> [][]..[] gồm n []

Ví dụ:

int a[][];
int[][] a;

Khởi tạo mảng đa chiều:

<Kiểu dữ liệu> <Tên mảng>[][]…[]= new <Kiểu dữ liệu>[Số phần từ 1][Số phần tử 2]…..[Số phần tử n]

Ví dụ:

int a[][]=new int[2][3];

Cấp phát phần tử cho mảng đa chiều

int a[][]={
                  {3,4},
                  {2,8},
               };

hoặc

a[0][0]=3;
a[0][1]=4;
a[1][0]=2;
a[1][1]=8;

Một số ví dụ về mảng:

Tìm số lớn nhất và nhỏ nhất trong mảng:

public class FindLargestSmallestNumber
{


    public static void main(String[] args)
    {
            
        //Mảng 6 chữ số
        int numbers[] = new int[]{1, 5, 9.7, 3, 4};
        
        //-- Tạo biến để lưu trữ giá trị nhỏ nhất và lớn nhất được tìm thấy.
        int smallest = numbers[0];
        int largetst = numbers[0];
        
        for(int i=1; i< numbers.length; i++)
        {
                if(numbers[i] > largetst)
                {
                    largetst = numbers[i];       
                }
                else if (numbers[i] < smallest)
                {
                    smallest = numbers[i];
                }
        }
        
        System.out.println("So lon nhat trong mang la : " + largetst);
        System.out.println("So nho nhat trong mang la : " + smallest);
             
    }
}

 

Sắp xếp mảng

public class SortArray {


    public static void main(String[] args) {
        int[] array_a = {3, 1, 5, 7, 4};
        for (int i = 0; i < array_a.length; i++) {
            for (int j = 0; j <= i; j++) {
                if (array_a[i] <= array_a[j]) {
                    temp = array_a[i];
                    array_a[i] = array_a[j];
                    array_a[j] = temp;
                }
            }
        }
        System.out.println("--------mang da duoc sap xep----------");
        for (int i = 0; i < array_a.length; i++) {
            System.out.print(array_a[i]);
        }
    }
}

 

source https://techacadamy.com/bai-7-khai-bao-mang-trong-java/

Bài 6: Các từ khóa trong Java

Ngôn ngữ lập trình Java có khoảng 50 keywords, bạn cần nhớ những keyword này vì chúng sẽ được dùng rất nhiều trong quá trình lập trình. Lưu ý: true, false, null không phải là các keyword. Dưới đây là danh sách keyword trong Java:

Keyword What It Does
abstract Khai báo lớp, phương thức, interface trừu tượng không có thể hiện(instance) cụ thể
assert Kiểm tra điều kiện đúng hay sai (thường dùng trong Unit Test)
boolean Khai báo biến kiểu logic với 2 trị: true, false.
break Thoát ra khỏi vòng lặp hoặc lệnh switch-case.
byte Kiểu byte với các giá trị nguyên chiếm 8 bit (1 byte).
case Trường hợp được tuyển chọn theo switch (chỉ được dùng khi đi kèm switch)
catch Được sử dụng để bắt ngoại lệ, được sử dụng cùng với try để xử lý các ngoại lệ xảy ra trong chương trình
char Kiểu ký tự Unicode, mỗi ký tự chiếm 16 bit (2 byte).
class Được sử dụng để định nghĩa class
const Chưa được sử dụng vì vậy bạn không thể dùng nó trong ngôn ngữ Java
continue Dừng chu trình(iteration) lặp hiện tại và bắt đầu chu trình tiếp theo
default Mặc định đươc thực thi khi không có case nào trả về giá trị true (dùng trong switch case)
do Dùng trong vòng lặp do while
double Kiểu số thực với các giá trị biểu diễn theo dạng dấu phẩy động 64 bit (8 byte).
else Rẽ nhánh theo điều kiện ngược lại của if.
enum Định nghĩa kiểu dữ liệu enum – gần giống với kiểu dữ liệu mảng nhưng các phần tử có thể bổ sung thêm các phương thức
extends Được sử dụng để định nghĩa lớp con kế thừa các thuộc tính và phương thức từ lớp cha.
final Chỉ ra các biến, phương thức không được thay đổi sau khi đã được định nghĩa. Các phương thức final không thể được kế thừa và override
finally Thực hiện một khối lệnh đến cùng bất chấp các ngoại lệ có thể xảy ra. Được sử dụng trong try-catch
float Kiểu số thực với các giá trị biểu diễn theo dạng dấu phẩy động 32 bit.
for Sử dụng cho vòng lặp for với bước lặp được xác định trước
goto Chưa được sử dụng
if Lệnh chọn theo điều kiện logic
implements Xây dựng một lớp mới cài đặt những phương thức từ interface xác định trước.
import Yêu cầu một hay một số lớp ở các gói chỉ định cần nhập vào để sử dụng trong ứng dụng hiện thời.
instanceof Kiểm tra xem một đối tượng nào đó có phải là một thể hiện của 1 class được định nghĩa trước hay không
int Kiểu số nguyên với các giá trị chiếm 32 bit (4 byte).
interface Được sử dụng để định nghĩa interface
long Kiểu số nguyên lớn với các giá trị chiếm 64 bit (8 byte).
native Giúp lập trình viên có thể sử dụng code được viết bằng các ngôn ngữ khác
new Khởi tạo đối tượng
package Xác định một gói sẽ chứa một số lớp ở trong file mã nguồn.
private Khai báo biến dữ liệu, phương thức riêng trong từng lớp và chỉ cho phép truy cập trong lớp đó.
protected Khai báo biến dữ liệu, phương thức chỉ được truy cập ở lớp cha và các lớp con của lớp đó.
public Khai báo lớp, biến dữ liệu, phương thức công khai có thể truy cập ở mọi nơi trong hệ thống.
return Kết thúc phương thức và trả về giá trị cho phương thức
short Kiểu số nguyên ngắn với các giá trị chiếm 16 bit (2 byte).
static Định nghĩa biến, phương thức của một lớp có thể được truy cập trực tiếp từ lớp mà không thông qua khởi tạo đôi tượng của lớp
super Biến chỉ tới đối tượng ở lớp cha
switch Sử dụng trong câu lệnh điều khiển switch case
synchronized Chỉ ra là ở mỗi thời điểm chỉ có một đối tượng hoặc một lớp có thể truy nhập đến biến dữ liệu, hoặc phương thức loại đó, thường được sử dụng trong lập trình đa luồng (multithreading)
this Biến chỉ tới đối tượng hiện thời.
throw Tạo một đối tượng exception để chỉ định một trường hợp ngoại lệ xảy ra
throws Chỉ định cho qua ngoại lệ khi exception xảy ra
transient Chỉ định rằng nếu một đối tượng được serialized, giá trị của biến sẽ không cần được lưu trữ
try Thử thực hiện cho đến khi gặp một ngoại lệ.
void Chỉ định một phương thức không trả về giá trị
volatile Báo cho chương trình dịch biết là biến khai báo volatile có thể thay đổi tùy ý trong các luồng (thread).
while Được sử dụng trong lệnh điều khiển while

source https://techacadamy.com/cac-tu-khoa-trong-java/

Bài 5: Lập trình hướng đối tượng trong java

Java là một ngôn ngữ lập trình hướng đối tượng vì vậy nó cũng hỗ trợ các đặc tính của lập trình hướng đối tượng:

  • Đa hình (Polymorphism)
  • Thừa kế (Inheritance)
  • Đóng gói (Encapsulation)
  • Trừu tượng (Abstraction)

Đối tượng trong lập trình Java:

Nếu chúng ta xem xét thực tế chúng ta có thể tìm thấy nhiều đồ vật xung quanh chúng ta: ô tô, chó, con người, v.v… Tất cả các đối tượng này đều có thuộc tính và hành vi.

Nếu chúng ta xem xét một con chó, thuộc tính của nó sẽ là – tên, giống, màu sắc, và các hành vi là: sủa, vẫy, chạy, cắn…Nếu bạn so sánh các đối tượng trong phần mềm với một đối tượng trong thế giới thực, chúng sẽ có đặc điểm rất giống nhau: thuộc tính đối tượng trong phần mềm được lưu trữ trong trường (field) và hành vi được lưu trữ trong phương thức (method).

Class: Chúng ta có thể xem lớp như một khuôn mẫu (template) của đối tượng (Object). Trong đó bao gồm dữ liệu của đối tượng (fields hay properties) và các phương thức(methods) tác động lên thành phần dữ liệu đó gọi là các phương thức của lớp.

Ví dụ:

public class Student{
   String name;
   int id;
   
   void registerCourse(){
   }
    
   void removeCourse(){
   }


}

Cách khai báo:

class<ClassName>
{
<kiểudữ liệu> <field_1>;
<kiểudữ liệu> <field_2>;
constructor
method_1
method_2
}

  • class: là từ khóa để khai báo lớp trong Java
  • ClassName: là tên chúng ta đặt cho lớp (quy tắc đặt tên: viết hoa mỗi chữ cái đầu)
  • field_1, field_2: các thuộc tính, các biến, hay các thành phần dữ liệu của lớp (quy tắc đặt tên: chữ cái đầu tiên viết thường, các chữ cái đầu tiên tiếp theo viết hoa).
  • constructor: hàm dùng để khởi tạo đối tượng lớp.
  • method_1, method_2: là các phương thức thể hiện các thao tác xử lý, tác động lên các thành phần dữ liệu của lớp.

Constructor

Mỗi lớp thường có một hàm constructor. Nếu chúng ta không khai báo hàm này rõ ràng trình biên dịch Java sẽ tạo một constructor mặc định cho lớp đó.

Mỗi lần một đối tượng mới được khởi tạo, ít nhất một constructor sẽ được gọi. Nguyên tắc chính của constructor là chúng cần phải có cùng tên với lớp. Một lớp có thể có nhiều hơn một constructor.

Ví dụ:

public class Student{
  public String name;


   public Student(){
   }


   public Student(String name){
      this.name = name;
   }
}

Trong ví dụ trên từ khóa this nhằm chỉ đến chính lớp đang được tham chiếu đến. this.name sẽ tham chiếu đến thuộc tính name của class Student.

Khởi tạo đối tượng (Instance): trong Java để khởi tạo đối tượng chúng ta sử dụng từ khóa new

public class Student{
  public String name;


   public Student(String name){
      this.name = name;
   }
   public static void main(String []args){
     Student s = new Student("Mark");
     System.out.println(s.name);
//ket qua in ra Mark
   }
}

 Cách thức truy cập biến và phương thức:

/* Khởi tạo đối tượng */

Object ObjectReference = new Constructor();

/* Gọi biến */

ObjectReference.variableName;

/* Gọi phương thức */

ObjectReference.MethodName();

Case Study

import java.io.*;
public class Employee{
   String name;
   int age;
   String designation;
   double salary;
     
   // This is the constructor of the class Employee
   public Employee(String name){
      this.name = name;
   }
   // Assign the age of the Employee  to the variable age.
   public void empAge(int empAge){
      age =  empAge;
   }
   /* Assign the designation to the variable designation.*/
   public void empDesignation(String empDesig){
      designation = empDesig;
   }
   /* Assign the salary to the variable salary.*/
   public void empSalary(double empSalary){
      salary = empSalary;
   }
   /* Print the Employee details */
   public void printEmployee(){
      System.out.println("Name:"+ name );
      System.out.println("Age:" + age );
      System.out.println("Designation:" + designation );
      System.out.println("Salary:" + salary);
   }
}
import java.io.*;
public class EmployeeTest{


   public static void main(String args[]){
      /* Create two objects using constructor */
      Employee empOne = new Employee("James Smith");
      Employee empTwo = new Employee("Mary Anne");


      // Invoking methods for each object created
      empOne.empAge(26);
      empOne.empDesignation("Senior Software Engineer");
      empOne.empSalary(1000);
      empOne.printEmployee();


      empTwo.empAge(21);
      empTwo.empDesignation("Software Engineer");
      empTwo.empSalary(500);
      empTwo.printEmployee();
   }
}

Kết quả in ra:

Name:James Smith
Age:26
Designation:Senior Software Engineer
Salary:1000.0
Name:Mary Anne
Age:21
Designation:Software Engineer
Salary:500.0

source https://techacadamy.com/lap-trinh-huong-doi-tuong-trong-java/

Bài 4: Các kiểu dữ liệu trong java

Để bắt đầu tìm hiểu về ngôn ngữ lập trình Java chúng ta sẽ lần lượt học về các cú pháp cơ bản trong ngôn ngữ Java gồm khai báo biến, hằng, phương thức, các kiểu dữ liệu, toán tử, biểu thức và các cấu trúc điều khiển trong Java.

1, Biến

Biến: là vùng nhớ dùng để lưu trữ các giá trị của chương trình. Mỗi biến gắn liền với một kiểu dữ liệu và một định danh duy nhất gọi là tên biến.

  • Tên biến thông thường là một chuỗi các ký tự, ký số.
  • Tên biến phải bắt đầu bằng một chữ cái , một dấu _ hay dấu $. Ví dụ: int total2Number; String title
  • Tên biến không được trùng với các từ khóa.
  • Tên bi ến không có khoảng trắng ở giữa tên.
  • Biến có thể được khai báo ở bất kỳ đâu trong chương trình.

 Cú pháp khai báo: 

<kiểu_dữ_liệu> <tên_biến>;
<kiểu_dữ_liệu> <tên_biến> = <giá_trị>;

Ví dụ:

String bodyOfContent;

bodyOfContent = “Hello World”;

Quy chuẩn đặt tên (naming convention): chữ cái đầu tiên viết thường, các chữ cái đầu tiên tiếp theo của mỗi từ trong tên biến viết hoa.

  • Biến toàn cục (khai báo bằng từ khóa public phía trước hoặc đặt trong 1 class): là biến có thể truy xuất ở khắp nơi trong chương trình.
  • Biến cục bộ: là biến chỉ có thể truy xuất trong khối lệnh nó khai báo.

Ví dụ:

public class MyFirstJavaProgram {
    public String text="Hello World";//biến toàn cục
     
    public static void main(String []args) {
       int a = 3;//biến cục bộ
       System.out.println(text); // prints Hello World
       System.out.println(a); //print 3
    }
}

2, Hằng

Hằng:

  • Hằng là một giá trị bất biến trong chương trình
  • Qui ước đặt tên hằng giống như tên biến.
  • Hằng số nguyên: trường hợp giá trị hằng ở dạng long ta thêm vào cuối  số chữ“l” hay“L”. (ví dụ: 1L)
  • Hằng số thực: truờng hợp giá trị hằng có kiểu float ta thêm tiếp vĩ ngữ “f” hay “F”, còn kiểu số double thì thêm tiếp vĩ ngữ “d” hay“D”.
  • Hằng Boolean: có 2 giá trị là true và false.

3, Một số ký tự đặc biệt trong Java

Ký tự  Ý nghĩa
\b Xóa lùi (BackSpace)
\t Tab
\n Xuống hàng
\r Dấu enter
\” Nháy kép
\’ Nháy đơn
\\ Dấu \
\f Đẩy trang
\uxxxx Ký tự Unicode

 

4, Các kiểu dữ liệu nguyên thủy (Primitive data type Java)

Kiểu dữ liệu của Java được chia làm 3 nhóm:

  • Kiểu nguyên gồm các kiểu số nguyên và kiểu ký tự. Các kiểu số nguyên gồm: byte, short, int, long biểu diễn cho các số nguyên. Kiểu ký tự được thể hiện bằng kiểu char.
  • Kiểu dấu phẩy động hay kiểu số thực: Loại này có hai kiểu float và double biểu diễn cho các số thập phân có dấu.
  • Kiểu boolean: là kiểu boolean có hai giá trị true (đúng) và false (sai).

source https://techacadamy.com/cac-kieu-du-lieu-trong-java/

Bài 3: Hướng dẫn sử dụng Netbeans trong lập trình Java

Trong bài học này chúng ta sẽ học cách sử dụng Netbeans IDE thông qua ví dụ ở bài số 2. Bạn có thể cài đặt Netbeans theo 2 cách: download JDK tích hợp Netbeans vài cài 1 lần (phiên bản Netbeans này chỉ hỗ trợ ngôn ngữ Java) hoặc download JDK riêng rồi sau đó chọn lựa phiên bản Netbeans phù hợp (có thể sử dụng để lập trình HTML5 & PHP, C/C++…).

Trong trường hợp này tôi chọn cách thứ nhất. Chúng ta tiến hành làm theo trình tự sau:

Bước 1: Download Netbeans tại:  http://www.oracle.com/technetwork/java/javase/downloads/index.html. Bạn nhớ chọn Netbeans With JDK.

Bước 2: Tiến hành cài đặt chương trình như các chương trình thông thường khác.

Bước 3: Mở Netbeans sau đó chọn File -> New Project

Bước 4: Chọn Java Application

Bước 5: Điền tên Project Name và chọn đường dẫn lưu ứng dụng. Lưu ý là tên class main phải trùng với tên class chúng ta khai báo trong mã nguồn.

Bước 6: Xóa hết mã có sẵn trong class HelloWorldApp và chèn đoạn mã trong ví dụ ở bài số 2 vào.

Bước 7: Thực thi ứng dụng bằng cách ấn Shift+F6. Nếu xuất hiện thông báo màu xanh Build Sucess là bạn đã thành công.

Netbeans và Eclipse là những IDE rất lý tưởng đối với các bạn đang bước đầu học Java. IDE sẽ giúp bạn giảm thiểu các lỗi cú pháp, gợi ý các function (bạn sử dụng phím ctr+space để xổ các hàm được gợi ý), debug, refactor, tự động import thư viện…

source https://techacadamy.com/huong-dan-su-dung-netbeans-trong-lap-trinh-java/

Bài 2: Chương trình Java đầu tiên ?

Trong bài học này chúng ta sẽ viết một chương trình in ra màn hình dòng chữ “Hello World” – bài học nhập môn đối hầu hết các ngôn ngữ lập trình. Đầu tiên chúng ta sẽ tiến hành viết mã và biên dịch thủ công để hiểu cơ chế sau đó sẽ chuyển sang dùng Netbeans IDE để chạy chương trình.

Bước 1: Thiết lập môi trường

Để viết chương trình Java đầu tiên bạn sẽ cần đến:

  • Java SE Development Kit 8 (JDK 8)

Bạn có thể tải về phiên bản Windows tại đây . (Hãy chắc chắn rằng bạn tải về là JDK chứ  không phải là JRE nhé).

  • Một trình soạn thảo văn bản (text editor): bạn có thể sử dụng notepad hoặc notepad++.

Bước 2: Bạn mở Notepad trong Windows lên và gõ đoạn code sau vào:

class HelloWorldApp {
    public static void main(String[] args) {
        System.out.println("Hello World!"); // Display the string.
    }
}

Ứng dụng này chỉ đơn giản in ra màn hình dòng chữ Hello World. Lưu lại đoạn code trên với tên file là HelloWorldApp.java

Trong ví dụ trên chúng ta thấy cách thức cơ bản để định nghĩa 1 class sẽ có dạng như sau:

class name {
. . .
}

Từ khóa class được sử dụng để định nghĩa 1 class

Trong ngôn ngữ Java mỗi ứng dụng muốn chạy được phải có một phương thức main, phương thức main là điểm khởi đầu cho ứng dụng để gọi tất cả các phương thức khác cần thiết để khởi chạy chương trình:

public static void main(String[] args)

Từ khóa static nhằm chỉ ra rằng đây là một phương thức tĩnh có thể chạy mà không cần khởi tạo đối tượng.
Hàm main chấp nhận chỉ một tham số là một mảng dữ liệu kiểu String. Chúng ta có thể truyền tham số cho hàm main bằng lệnh như sau:

java MyApp arg1 arg2

Dòng lệnh cuối cùng System.out.println dùng để in ra màn hình chữ Hello World.

Bước 3: Biên dịch mã nguồn sang file .class – trình biên dịch (compiler) sẽ làm nhiệm vụ chuyển mã nguồn sang mã bytecodes để máy ảo (JVM) có thể hiểu được. Ở đây giả sử file HelloWorldApp.java được lưu trong ổ D. Chúng ta tiến hành mở command line và di chuyển đến ổ D rồi gõ lệnh:

javac HelloWorldApp.java

Bước 4: Thực thi chương trình đã biên dịch bằng lệnh sau:

java  HelloWorldApp

(Lưu ý: Để chạy lệnh javac hoặc java bạn cần phải set biến môi trường path trong Windows trỏ đến đường dẫn của 2 file javac.exe và java.exe nếu không sẽ gặp phải lỗi “command not found”, nếu chưa set biến môi trường bạn cũng có thể chạy thẳng trực tiếp command như trên hình vẫn được.)

source https://techacadamy.com/bai-2-chuong-trinh-java-dau-tien/

Tổng Quan về Java

Ngôn ngữ lập trình Java ban đầu được phát triển bởi Sun Microsystems do James Gosling khởi xướng và phát hành vào năm 1995 (Java 1.0 [J2SE]). Tính đến thời điểm này (tháng 2/2015) phiên bản mới nhất của Java Standard Edition (JSE) là 8. Với ưu thế về đa nền tảng (multi platform) Java càng lúc càng được ứng dụng rộng rãi trên nhiều thiết bị từ máy tính đến mobile và nhiều thiết bị phần cứng khác…

Java là ngôn ngữ lập trình hướng đối tượng nên nó cũng có 4 đặc điểm chung của các ngôn ngữ hướng đối tượng

  • Tính trừu tượng (Abstraction): là tiến trình xác định và nhóm các thuộc tính, các hành động liên quan đến một thực thể đặc thù, xét trong mối tương quan với ứng dụng đang phát triển.
  • Tính đa hình (Polymorphism): cho phép một phương thức có các tác động khác nhau trên nhiều loại đối tượng khác nhau. Với tính đa hình, nếu cùng một phương thức ứng dụng cho các đối tượng thuộc các lớp khác nhau thì nó đưa đến những kết quả khác nhau. Bản chất của sự việc chính là phương thức này bao gồm cùng một số lượng các tham số.
  • Tính kế thừa (Inheritance): Điều này cho phép các đối tượng chia sẻ hay mở rộng các đặc tính sẵn có mà không phải tiến hành định nghĩa lại.
  • Tính đóng gói (Encapsulation):  là tiến trình che giấu việc thực thi những chi tiết của một đối tượng đối với người sử dụng đối tượng ấy.

Bên cạnh đó Java còn có một số đặc tính khác:

  • Độc lập nền (Write Once, Run Anywhere): Không giống như nhiều ngôn ngữ lập trình khác như C và C ++, khi Java được biên dịch, nó không được biên dịch sang mã máy cụ thể, mà thay vào đó là mã byte code chạy trên máy ảo Java (JVM). Điều này đồng nghĩa với việc bất cứ thiết bị nào có cài đặt JVM sẽ có thể thực thi được các chương trình Java.
  • Đơn giản: học Java thật sự dễ hơn nhiều so với C/C++, nếu bạn đã quen với các ngôn ngữ lập trình hướng đối tượng thì việc học Java sẽ dễ dàng hơn. Java trở nên đơn giản hơn so với C/C++ do đã loại bỏ tính đa kế thừa và phép toán con trỏ từ C/C++.
  • Bảo mật: Java hỗ trợ bảo mật rất tốt bởi các thuật toán mã hóa như mã hóa một chiều (one way hashing) hoặc mã hóa công cộng (public key)…
  • Đa luồng: Với tính năng đa luồng Java có thể viết chương trình có thể thực thi nhiều task cùng một lúc. Tính năng này thường được xử dụng rất nhiều trong lập trình game.
  • Hiệu suất cao nhờ vào trình thu gom rác (garbage collection), giải phóng bộ nhớ đối với các đối tượng không được dùng đến.
  • Linh hoạt: Java được xem là linh hoạt hơn C/C ++ vì nó được thiết kế để thích ứng với nhiều môi trường phát triển.

Java được sử dụng để làm gì?

  • Viết ứng dụng web (J2EE): Java thường được sử dụng để xây dựng các hệ thống web lớn đòi hỏi độ bảo mật cao, số lượng người dùng lớn  như ngân hàng, phần mềm quản lý bệnh viện, CRM, HRM…. Đối với các website nhỏ thông thường rất ít viết bằng Java.
  • Viết ứng dụng mobile (J2ME): Trước đây nền tảng J2ME thường được sử dụng để viết game và app cho di động feature phone (file .jar) và giờ đây khi smartphone Android lên ngôi Java lại tiếp tục được sử dụng để viết app và game cho nền tảng Android (file .apk).
  • Viết ứng dụng desktop (J2SE): Các ứng dụng desktop viết bằng Java thật sự không nhiều có thể kể đến một số phần mềm như JMeter hoặc Designer Vista. Lợi thế lớn nhất của ứng dụng Java là bạn chỉ viết một lần và sau đó có thể đem chương trình lên Windows, Linux hay Mac để chạy mà không cần phải viết lại. Tuy nhiên do chạy trên JVM nên performance của ứng dụng thấp hơn một chút so với các ngôn ngữ như C/C++, C#.

Sử dụng gì để lập trình Java?

Để lập trình Java bạn cần đến:

  • JDK (Java Development KIT): bao gồm JRE (Java Runtime Enviroment) và thư viện để phát triển.
  • IDE (Integrated Development Environment): là ứng dụng giúp lập trình viên phát triển dễ dàng và nhanh chóng hơn. Bạn có thể sử dụng Netbeans, Eclipse hoặc IntellịIDEA để phát triển.

source https://techacadamy.com/tong-quan-ve-java/

HTML là gì?

I. HTML là gì?

HTML là chữ viết tắt của cụm từ HyperText Markup Language((Xem thêm tại http://vi.wikipedia.org/wiki/HTML)) (dịch là Ngôn ngữ đánh dấu siêu văn bản) được sử dụng để tạo một trang web, trên một website có thể sẽ chứa nhiều trang và mỗi trang được quy ra là một tài liệu HTML (thi thoảng mình sẽ ghi là một tập tin HTML). Cha đẻ của HTML là Tim Berners-Lee, cũng là người khai sinh ra World Wide Web và chủ tịch của World Wide Web Consortium (W3C – tổ chức thiết lập ra các chuẩn trên môi trường Internet).

Một tài liệu HTML được hình thành bởi các phần tử HTML (HTML Elements) được quy định bằng các cặp thẻ (tag), các cặp thẻ này được bao bọc bởi một dấu ngoặc ngọn (ví dụ <html>) và thường là sẽ được khai báo thành một cặp, bao gồm thẻ mở và thẻ đóng (ví <strong> dụ </strong> và ). Các văn bản muốn được đánh dấu bằng HTML sẽ được khai báo bên trong cặp thẻ (ví dụ <strong>Đây là chữ in đậm</strong>). Nhưng một số thẻ đặc biệt lại không có thẻ đóng và dữ liệu được khai báo sẽ nằm trong các thuộc tính (ví dụ như thẻ <img>).

Một tập tin HTML sẽ bao gồm các phần tử HTML và được lưu lại dưới đuôi mở rộng là .html hoặc .htm.

II. HTML được xử lý ra sao?

Khi một tập tin HTML được hình thành, việc xử lý nó sẽ do trình duyệt web đảm nhận. Trình duyệt sẽ đóng vai trò đọc hiểu nội dung HTML từ các thẻ bên trong và sẽ chuyển sang dạng văn bản đã được đánh dấu để đọc, nghe hoặc hiểu (do các bot máy tính hiểu).

Để kiểm tra, bạn có thể sử dụng khung nội dung bên dưới và chuyển qua lại giữa phần HTML và Result để xem kết quả của một tập tin HTML sau khi được xử lý.

III. Cấu trúc một đoạn HTML

Như mình đã nói ở trên, HTML sẽ được khai báo bằng các phần tử bởi các từ khóa. Nội dung nằm bên trong cặp từ khóa sẽ là nội dung bạn cần định dạng với HTML. Ví dụ dưới đây là một đoạn HTML khai báo một đoạn văn bản.

<p>Đây là một đoạn văn bản trong HTML.</p>

Ngoài ra, trong các thẻ còn có các thuộc tính, thuộc tính sẽ đặt bên trong thẻ mở đầu, mỗi thuộc tính sẽ có giá trị được đặt trong dấu ngoặc kép và cách nhau bởi dấu bằng (=) với tên thuộc tính. Ví dụ dưới đây là một thẻ có sử dụng thuộc tính-

<form action="https://thachpham.com"> </form>

Một thẻ có thể sử dụng nhiều thuộc tính chứ không phải chỉ một thuộc tính nhé.

IV. Dùng chương trình gì để tạo tập tin HTML?

HTML là một tập tin siêu văn bản nên bạn có thể dùng các chương trình soạn thảo văn bản không có chức năng định dạng văn bản để tạo ra một tập tin HTML. Trong Windows, bạn có thể dùng Notepad để tạo ra một tập tin HTML, còn trên Mac thì có thể dùng TextEdit và Vim trên các hệ điều hành Linux khác. Miễn là sau đó bạn phải lưu tập tin thành đuôi .html và sử dụng trình duyệt website để đọc nó.

Tuy nhiên Notepad lại quá đơn giản để sử dụng cho mục đích soạn thảo, nên từ các bài sau chúng ta sẽ dùng một chương trình khác tương tự để soạn thảo HTML. Và mình cũng không bao giờ khuyến khích bạn sửa một tập tin HTML bất kỳ bằng chương trinh Notepad để tránh gặp các lỗi hiển thị ký tự tiếng Việt.

V. HTML đóng vai trò gì trong website?

Như mình đã nói, HTML là một ngôn ngữ đánh dấu siêu văn bản nên nó sẽ có vai trò xây dựng cấu trúc siêu văn bản trên một website, hoặc khai báo các tập tin kỹ thuật số (media) như hình ảnh, video, nhạc.

Điều đó không có nghĩa là chỉ sử dụng HTML để tạo ra một website mà HTML chỉ đóng một vai trò hình thành trên website. Ví dụ một website như Thachpham.com sẽ được hình thành bởi:

  • HTML – Xây dựng cấu trúc và định dạng các siêu văn bản.
  • CSS – Định dạng các siêu văn bản dạng thô tạo ra từ HTML thành một bố cục website, có màu sắc, ảnh nền,….
  • Javascript – Tạo ra các sự kiện tương tác với hành vi của người dùng (ví dụ nhấp vào ảnh trên nó sẽ có hiệu ứng phóng to).
  • PHP – Ngôn ngữ lập trình để xử lý và trao đổi dữ liệu giữa máy chủ đến trình duyệt (ví dụ như các bài viết sẽ được lưu trong máy chủ).
  • MySQL – Hệ quản trị cơ sở dữ liệu truy vấn có cấu trúc (SQL – ví dụ như các bài viết sẽ được lưu lại với dạng dữ liệu SQL).

Nhưng ở đây, tạm thời bạn chỉ cần quan tâm đến HTML mà thôi. Dễ hiểu hơn, bạn hãy nghĩ rằng nếu website là một cơ thể hoàn chỉnh thì HTML chính là bộ xương của cơ thể đó, nó như là một cái khung sườn vậy.

Như vậy, dù website thuộc thể loại nào, giao tiếp với ngôn ngữ lập trình nào để xử lý dữ liệu thì vẫn phải cần HTML để hiển thị nội dung ra cho người truy cập xem.

Nhân tiện đây mình cũng nói luôn, website có hai loại chính:

  • Website tĩnh (static web) – Là một website không giao tiếp với máy chủ web để gửi nhận dữ liệu mà chỉ có các dữ liệu được khai báo sẵn bằng HTML và trình duyệt đọc.
  • Website động (dynamic web) – Là một website sẽ giao tiếp với một máy chủ để gửi nhận dữ liệu, các dữ liệu đó sẽ gửi ra ngoài cho người dùng bằng văn bản HTML và trình duyệt sẽ hiển thị nó. Để một website có thể giao tiếp với máy chủ web thì sẽ dùng một số ngôn ngữ lập trình dạng server-side như PHP, ASP.NET, Ruby,..để thực hiện. Ví dụ như một website làm bằng WordPress là website động.

IV. Tài nguyên tham khảo HTML

Trong serie này mình không có nói hết về các thẻ trong HTML mà chỉ nói qua các thẻ quan trọng nhất vì bạn sẽ sử dụng nó thường xuyên. Vì vậy, bạn hãy vào trang HTML Reference để tham khảo ý nghĩa và cách sử dụng của tất cả các thẻ HTML.

Dưới đây là một só tài liệu học lập trình HTML:

1, https://ift.tt/1oOjF6A

2, https://ift.tt/2WpNy1v

V. Lời kết

Ở trên mình đã giải thích khá chi tiết và cặn kẽ về HTML và vai trò của nó trên website là như thế nào. Thoạt nhìn có thể bạn sẽ tưởng các thông tin này chỉ mang tính tham khảo nhưng đó lại là các thông tin cực kỳ quan trọng, vì bạn đã làm web thì phải hiểu rõ về nó.

Ở các bài sau, chúng ta sẽ đi vào việc chuẩn bị để soạn thảo một tập tin HTML đầu tiên và chạy thử nó nhé.

source https://techacadamy.com/html-la-gi/

Internet of things là gì?

Thuật ngữ ” Internet of things”( viết tắt là IoT) dạo gần đây xuất hiện khá nhiều và thu hút không ít sự quan tâm chú ý của thế giới công nghệ. Vì sự bùng nổ của IoT trong tương lai sẽ có tác động mãnh mẽ tới cuộc sống, công việc và xã hội loài người.

Thực tế, Internet of things đã manh nha từ nhiều thập kỹ trước. Tuy nhiên mãi đến năm 1999 cụm từ IoT mới được đưa ra bởi Kevin Ashton , Ông là một nhà khoa học đã sáng lập ra Trung tâm Auto-ID ở đại học MIT, nơi thiết lập các quy chuẩn toàn cầu cho RFID (một phương thức giao tiếp không dây dùng sóng radio) cũng như một số loại cảm biến khác.

I. Internet of things là gì?

Theo định nghĩa của Wikipedia

Mạng lưới vạn vật kết nối Internet hoặc là Mạng lưới thiết bị kết nối Internet viết tắt là IoT (tiếng Anh: Internet of Things) là một kịch bản của thế giới, khi mà mỗi đồ vật, con người được cung cấp một định danh của riêng mình, và tất cả có khả năng truyền tải, trao đổi thông tin, dữ liệu qua một mạng duy nhất mà không cần đến sự tương tác trực tiếp giữa người với người, hay người với máy tính. IoT đã phát triển từ sự hội tụ của công nghệ không dây, công nghệ vi cơ điện tử và Internet. Nói đơn giản là một tập hợp các thiết bị có khả năng kết nối với nhau, với Internet và với thế giới bên ngoài để thực hiện một công việc nào đó.

Hay hiểu một cách đơn giản IoT là tất cả các thiết bị có thể kết nối với nhau . Việc kết nối thì có thể thực hiện qua Wi-Fi, mạng viễn thông băng rộng (3G, 4G), Bluetooth, ZigBee, hồng ngoại… Các thiết bị có thể là điện thoại thông minh, máy pha cafe, máy giặt, tai nghe, bóng đèn, và nhiều thiết bị khác. Cisco, nhà cung cấp giải pháp và thiết bị mạng hàng đầu hiện nay dự báo: Đến năm 2020, sẽ có khoảng 50 tỷ đồ vật kết nối vào Internet, thậm chí con số này còn gia tăng nhiều hơn nữa. IoT sẽ là mạng khổng lồ kết nối tất cả mọi thứ, bao gồm cả con người và sẽ tồn tại các mối quan hệ giữa người và người, người và thiết bị, thiết bị và thiết bị. Một mạng lưới IoT có thể chứa đến 50 đến 100 nghìn tỉ đối tượng được kết nối và mạng lưới này có thể theo dõi sự di chuyển của từng đối tượng. Một con người sống trong thành thị có thể bị bao bọc xung quanh bởi 1000 đến 5000 đối tượng có khả năng theo dõi.

II. Đặc tính cơ bản

+  Tính kết nối liên thông(interconnectivity): với IoT, bất cứ điều gì cũng có thể kết nối với nhau thông qua mạng lưới thông tin và cơ sở hạ tầng liên lạc tổng thể.

+ Những dịch vụ liên quan đến “Things”: hệ thống IoT có khả năng cung cấp các dịch vụ liên quan đến “Things”, chẳng hạn như bảo vệ sự riêng tư và nhất quán giữa Physical Thing và Virtual Thing. Để cung cấp được dịch vụ này, cả công nghệ phần cứng và công nghệ thông tin(phần mềm) sẽ phải thay đổi.

+ Tính không đồng nhất: Các thiết bị trong IoT là không đồng nhất vì nó có phần cứng khác nhau, và network khác nhau. Các thiết bị giữa các network có thể tương tác với nhau nhờ vào sự liên kết của các network.

+ Thay đổi linh hoạt: Status của các thiết bị tự động thay đổi, ví dụ, ngủ và thức dậy, kết nối hoặc bị ngắt, vị trí thiết bị đã thay đổi,và tốc độ đã thay đổi… Hơn nữa, số lượng thiết bị có thể tự động thay đổi.

+ Quy mô lớn: Sẽ có một số lượng rất lớn các thiết bị được quản lý và giao tiếp với nhau. Số lượng này lớn hơn nhiều so với số lượng máy tính kết nối Internet hiện nay. Số lượng các thông tin được truyền bởi thiết bị sẽ lớn hơn nhiều so với được truyền bởi con người.

III. Yêu cầu ở mức high-level đối với một hệ thống IoT

Một hệ thống IoT phải thoả mãn các yêu cầu sau:

+ Kết nối dựa trên sự nhận diện: Nghĩa là các “Things” phải có ID riêng biệt. Hệ thống IoT cần hỗ trợ các kết nối giữa các “Things”, và kết nối được thiết lập dựa trên định danh (ID) của Things.

+ Khả năng cộng tác: hệ thống IoT khả năng tương tác qua lại giữa các network và Things.

+ Khả năng tự quản của network: Bao gồm tự quản lý, tự cấu hình, tự chữa bệnh, tự tối ưu hóa và tự có cơ chế bảo vệ. Điều này cần thiết để network có thể thích ứng với các domains ứng dụng khác nhau, môi trường truyền thông khác nhau, và nhiều loại thiết bị khác nhau.

+ Dịch vụ thoả thuận: dịch vụ này để có thể được cung cấp bằng cách thu thập, giao tiếp và xử lý tự động các dữ liệu giữa các “Things” dựa trên các quy tắc(rules) được thiết lập bởi người vận hành hoặc tùy chỉnh bởi các người dùng.

+ Các Khả năng dựa vào vị trí(location-based capabilities): Thông tin liên lạc và các dịch vụ liên quan đến một cái gì đó sẽ phụ thuộc vào thông tin vị trí của Things và người sử dụng. Hệ thống IoT có thể biết và theo dõi vị trí một cách tự động. Các dịch vụ dựa trên vị trí có thể bị hạn chế bởi luật pháp hay quy định, và phải tuân thủ các yêu cầu an ninh.

+ Bảo mật: Trong IoT, nhiều “Things” được kết nối với nhau. Chình điều này làm tăng mối nguy trong bảo mật, chẳng hạn như bí mật thông tin bị tiết lộ, xác thực sai, hay dữ liệu bị thay đổi hay làm giả.

+ Bảo vệ tính riêng tư: tất cả các “Things” đều có chủ sở hữu và người sử dụng của nó. Dữ liệu thu thập được từ các “Things” có thể chứa thông tin cá nhân liên quan chủ sở hữu hoặc người sử dụng nó. Các hệ thống IoT cần bảo vệ sự riêng tư trong quá trình truyền dữ liệu, tập hợp, lưu trữ, khai thác và xử lý. Bảo vệ sự riêng tư không nên thiết lập một rào cản đối với xác thực nguồn dữ liệu.

+ Plug and play: các Things phải được plug-and-play một cách dễ dàng và tiện dụng.

+ Khả năng quản lý: hệ thống IoT cần phải hỗ trợ tính năng quản lý các “Things” để đảm bảo network hoạt động bình thường. Ứng dụng IoT thường làm việc tự động mà không cần sự tham gia người, nhưng toàn bộ quá trình hoạt động của họ nên được quản lý bởi các bên liên quan.

IV. Ứng dụng của IoT

IoT có ứng dụng rộng vô cùng, có thể kể ra một số thư như sau:

• Quản lí chất thải
• Quản lí và lập kế hoạch quản lí đô thị
• Quản lí môi trường
• Phản hồi trong các tinh huống khẩn cấp
• Mua sắm thông minh
• Quản lí các thiết bị cá nhân
• Đồng hồ đo thông minh
• Tự động hóa ngôi nhà
• …

Tác động của IoT rất đa dạng, trên các lĩnh vực: quản lý hạ tầng, y tế, xây dựng và tự động hóa, giao thông…. Cụ thể trong lĩnh vực y tế, Thiết bị IoT có thể được sử dụng để cho phép theo dõi sức khỏe từ xa và hệ thống thông báo khẩn cấp. Các thiết bị theo dõi sức khỏe có thể dao động từ huyết áp và nhịp tim màn với các thiết bị tiên tiến có khả năng giám sát cấy ghép đặc biệt, chẳng hạn như máy điều hòa nhịp hoặc trợ thính tiên tiến. cảm biến đặc biệt cũng có thể được trang bị trong không gian sống để theo dõi sức khỏe và thịnh vượng chung là người già, trong khi cũng bảo đảm xử lý thích hợp đang được quản trị và hỗ trợ người dân lấy lại mất tính di động thông qua điều trị là tốt. thiết bị tiêu dùng khác để khuyến khích lối sống lành mạnh, chẳng hạn như, quy mô kết nối hoặc máy theo dõi tim mặc.

V. IoT trong tương lai

Vì sao Cisco, Intel, và Qualcomm tài trợ khởi nghiệp cho IoT? Vì Tiềm năng hưởng lợi từ việc đầu tư vào các công ty khởi nghiệp đáng để mạo hiểm cho các hãng công nghệ khổng lồ. Như trong năm 2014, Intel kiếm hơn 2 tỷ USD từ Internet of Things

Những con số khẳng định IoT là xu hướng của tương lai

Internet of Things đến năm 2020:

+ 4 tỷ người kết nối với nhau
+ 4 ngàn tỷ USD doanh thu
+ Hơn 25 triệu ứng dụng
+ Hơn 25 tỷ hệ thống nhúng và hệ thống thông minh
+ 50 ngàn tỷ Gigabytes dữ liệu

source https://techacadamy.com/internet-of-things-la-gi/