Bài đăng

Đang hiển thị bài đăng từ Tháng 3, 2019

Làm thế nào để nâng cao kỹ năng giải quyết vấn đề

Làm thế nào để nâng cao kỹ năng giải quyết vấn đề Kỹ năng giải quyết vấn đề là một kỹ năng rất quan trọng, giúp cho bạn xử lý các vấn đề một cách tốt hơn, hiệu quả hơn. Vậy làm thế nào để rèn luyện kỹ năng này. Các bước mình trình bày dưới đây sẽ phần nào đó giúp các bạn rèn luyện tốt hơn. 1.   Đọc hiểu vấn đề một cách rõ ràng. Nhiều người thường hay vội vàng khi giải quyết một vấn đề. Họ không tìm hiểu kỹ càng vấn đề đã vội đặt tay vào viết vài dòng code, và rồi, họ dừng lại và cảm thấy bế tắc. Khoan nào, đừng quá vội vàng thế chứ. Nếu bạn không hiểu vấn đề, thì làm sao bạn có thể giải quyết được vấn đề chứ, phải không. Bạn hãy bình tĩnh, dành thời gian đọc vấn đề thật kỹ, đọc ít nhất 5, 6 lần, trong khi đọc nếu có một câu, một từ thắc mắc, liền hỏi ngay. Giả dụ ta có một vấn đề cần giải quyết, chẳng hạn như đảo ngược một xâu ký tự (tất nhiên không dùng hàm có sẵn rồi). Giả dụ bạn thắc mắc: Ủa, đảo ngược một xâu là gì vậy nhỉ?, thì bạn liền tìm cách giải quyết thắc mắ...

Vì sao mình lại ưa thích Java?

Vì sao mình lại ưa thích Java? Từ khi vào đại học và tiếp xúc với Java, mình mới cảm thấy Java là một ngôn ngữ khá là “good” với mình trong thời điểm hiện tại. Vì cũng đã từng làm việc với một vài ngôn ngữ lập trình khác, nên mình thấy rõ được điểm mạnh mà Java mang lại là như thế nào. Điểm mạnh thứ nhất: Java hỗ trợ đa nền tảng Đối với các ngôn ngữ lập trình khác, mã máy khi code của nó biên dịch ra đối với mỗi loại máy khác nhau sẽ khác nhau, điều này dẫn đến một hệ quả là nếu muốn chuyển một chương trình qua máy khác, ta phải code lại toàn bộ chương trình. Còn với Java, nó sử dụng một nền tảng riêng của mình gọi là JVM (Java Virtual Machine) để thiết lập một nền tảng độc lập chạy trên nền tảng của máy, code Java khi chạy không cần phụ thuộc vào nền tảng của máy tính, chỉ phụ thuộc vào JVM, nên 1 chương trình có thể chạy ở mọi nền tảng khác nhau. Vì thế nên Java có 1 câu slogan rất hay: “Write once, run anywhere”. Điểm mạnh thứ hai: Java là một ngôn ngữ hướng đối tượng ...

Stack và Heap trong Java

Hình ảnh
Stack và Heap trong Java Đối với các lập trình viên, không chỉ hoàn thiện chương trình là đủ, chúng ta còn phải làm cho chương trình có hiệu suất tốt hơn: làm chương trình chạy thời gian ngắn hơn, tốt ít bộ nhớ hơn. Vấn đề về bộ nhớ chính là một bài toán hiệu suất mà các nhà lập trình phải giải quyết nó một cách tối ưu nhất. Để giải quyết về vấn đề này, chúng ta cần phải hiểu rõ về bộ nhớ trên máy tính, đặc biệt là việc sử dụng bộ nhớ của nó. Ô nhớ hiểu đơn giản là một đơn vị để lưu trữ dữ liệu. Tập hợp nhiều ô nhớ được gọi là bộ nhớ (hoặc vùng bộ nhớ). Trong Java, vì là một ngôn ngữ ra đời cải tiến hơn so với các ngôn ngữ trước, nên việc phân chia vùng nhớ và xử lý chúng không đơn giản chỉ xoay quanh về khái niệm bộ nhớ. Bộ nhớ trong Java được chia làm 2 vùng: Stack và Heap . Stack được xem là vùng bộ nhớ để thực thi luồng. Chúng lưu trữ các biến cục bộ, các tham số của phương thức. Chúng hoạt động như tên gọi của nó ( Stack – chồng chất), biến đầu tiên sẽ nằm ở dưới cùng...

Số âm được biểu diễn như thế nào?

Hình ảnh
Số âm được biểu diễn như thế nào? Trải qua các môn học cơ bản, các bạn cũng biết được rằng một số (ở hệ thập phân) khi chuyển sang nhị phân sẽ thông qua công thức chia 2 lấy dư từ dưới lên. Như ví dụ dưới đây: (15) 10  = (00001111) 2 Câu hỏi đặt ra: Để biểu diễn số -15, người ta làm cách nào? Chúng ta cũng đã nghe qua cách số âm biểu diễn là số 1 ở đầu đại diện cho số âm, số 0 ở đầu đại diện cho số dương. Thế nhưng có 2 vấn đề xảy ra như sau: 1.      Dãy số 00001111 cũng bằng với 000…0001111, tức là có vô hạn số 0 ở bên trái, vậy đặt số 1 ở đâu cho hợp lí? 2.      Ta giả sử chỉ chấp nhận độ dài tối đa của dãy số là 00001111, vậy thì khi ta đặt 1 ở bit cực trái sẽ là 10001111, liệu đây có phải là số âm như ta đã biết? Chúng ta hãy thử đổi hệ nhị phân của dòng trên sang thập phân xem nào: (10001111) 2 = (143) 10 Wait, khoan đã!? Tại sao nó không phải là -15, mà thật sự thì 10001111 hệ nhị phân chính là 143 hệ thập phân. Kh...

Access modifier là gì?

Hình ảnh
Access modifier là gì? Để làm rõ khái niệm này, tôi sẽ cho bạn một ví dụ nho nhỏ Một công ty có 3 dạng người: Nhân viên, Thư ký, Tổng giám đốc . Trong công ty có nhiều căn phòng, mỗi căn phòng đều có chiếc bảng treo trước cửa. Những chiếc bảng sẽ ghi 1 trong 3 dòng chữ: Công cộng (dành cho Nhân viên, Thư ký và Tổng giám đốc), Nội bộ (dành cho Thư ký và Tổng giám đốc) hoặc Bí mật (chỉ dành cho Tổng giám đốc). Như vậy, khi một căn phòng được phân quyền là “Công cộng”, cả 3 dạng người trên đều có thể truy cập (đi vào) vào căn phòng này, còn có thể hiểu thêm là căn phòng này có thể được truy cập từ 3 dạng người trên. Tương tự như thế, với căn phòng loại “Nội bộ”, chỉ Thư ký và Tổng giám đốc có khả năng truy cập vào căn phòng đó, còn Nhân viên “không được phép” truy cập vào căn phòng. Và cứ như thế… Phân quyền truy cập (Access modifier) một căn phòng Ở đây, Access modifier được áp dụng lên căn phòng, tùy vào loại của nó mà các dạng người có thể truy cập vào. Quay trở lạ...