任小龙(Will、龙17)高级讲师
EasyJF开源团队成员,技术经理,高级讲师。
擅长技术:JavaSE、Java Web、Spring、Hibernate、MyBatis、Spring MVC 、Struts2、Struts1、 WebService、Lucene、Android等开源技术;以及Oracle、MySQL等数据库技术。
龙老师实战经验丰富,热衷探索新技术,拥有多年的Java开发和培训经验, 授课富有激情又通俗易懂,知识点分析深入,举例贴近生活不乏幽默生动,注重引导学生思维。
讲课风格:课堂幽默生动,思维行云流水,授课水到渠成。
学生点赞:龙哥的视频,苍老师都喜欢。
现在学习Java还有前途吗?
在互联网行业,Java工程师是一个技术含量非常高的岗位,支撑了互联网行 业的半壁江山,全世界有一千万Java程序员,目前还在有更多的计算机爱好者向Java的大门奔来。Java发展了20多年,关于Java的悲观论调也不时出现 ,现在学Java还有前途吗?是否已经过了红利期了呢?
Java作为所有编程语言中热门技术,可以说它无处不在,目前全球有着数十 亿的设备正在运行着Java,很多服务器程序都是用Java编写,用以处理每天超过数以千万的数据。
无论是手机软件、手机Java游戏还是电脑软件,每一次购物到每一笔支付成 功,都离不开Java,越来越多的企业也正采用Java语言开发网站,而在所有程序员中,Java开发工程师就占据了20%的比例。
从国内排名靠前网站的主要开发语言,也可以看出Java在各大开发语言中的 地位。淘宝、搜狐、网易等一线互联网公司,都在使用Java开发语言。
这也不难理解,为什么Java现在这么火爆,吸引越来越多的人学习,根本原 因,还是因为企业对Java的认可和应用。
Java有没有前途,需要我们认清自己今后应该怎么走自己的路线,是走技术 ,还是走管理。走技术路线:从初级、中级、高级再到软件架构师。如果说走管理路线:项目经理、部门经理、技术总监。只有清楚了自己要走的路线 后,再往决定的那一方面去努力,学习。除此以外,还有一些人学了这一专业后,从事销售顾问、培训讲师、自己创业的都有,关键是自己要认识自己 ,自己更适何哪一条路。
所以,先认清“正确的结果”,根据正确的结果去设计你的过程。当一个人 具有明确的职业目标时,就会对有助于实现目标的蛛丝马迹都特别敏感,做事情相应也就会很有目的性,而不是稀里糊涂的。所以,就容易到达自己的 目的。如果没有职业目标,脚踩西瓜皮滑到哪里是哪里,学什么技术都没前途。
在未来的几年,Java工程师人才的需求还在不断的加大,由于人才的紧缺, 这个岗位相对于其它专业薪资待遇还是不错的,而且Java工程师的待遇是与工作经验直接挂勾的,当你有了丰富的经验以后,你在这个行业里就比较抢 手了,而且企业所出的薪酬也是相当高的,到时只有你选择他们了。
数据库关键技术
.数据库关键技术
-
01Mysql 基础
-
1.Mysql的安装和使用
-
2.图解Mysql程序结构
-
3.Mysql服务器的配置
-
4.Mysql 客户端使用
-
5.用户权限管理
-
6.Mysql数据库的使用
-
02SQL基础
-
1.SQL语句的三种类型
-
2.DML、DDL、DCL的应用
-
3.数据处理
-
4.子查询
-
5.创建和管理表
-
6.约束与分页
-
03JDBC
-
1.JDBC概述
-
2.获取数据库连接
-
3.数据库连接池C3P0 与 DBCP
-
4.使用JDBC 完成数据库DML操作
-
5.大数据的操作
-
6.批量处理与元数据
-
04DBUtils
-
1.使用QueryRunner
-
2.可插拔式结果集处理
-
3.批量处理
-
4.大数据结果集处理
-
5.自定义结果集处理
-
6.利用DBUtils编写通用 DAO
C Win32 Api 实现了atlconv.h 编码转换的功能
>
C Win32 Api 实现了atlconv.h 编码转换的功能
GitHub:https://github.com/LowBoyTeam/textconv_helper
textconv_helper.hpp
/* * Author: LowBoyTeam (https://github.com/LowBoyTeam) * License: Code PRoject Open License * Disclaimer: The software is provided "as-is". No claim of suitability, guarantee, or any warranty whatsoever is provided. * Copyright (c) 2016-2017. */ #ifndef _TEXTCONV_HELPER_HPP_INCLUDED_ #define _TEXTCONV_HELPER_HPP_INCLUDED_ #include <windows.h> #include <vector> //////////////////////////////////////////////////////// // Classes and functions (typedefs) for text conversions // // This section defines the following text conversions: // A2BSTR ANSI to BSTR // A2OLE ANSI to OLE // A2T ANSI to TCHAR // A2W ANSI to WCHAR // OLE2A OLE to ANSI // OLE2T OLE to TCHAR // OLE2W OLE to WCHAR // T2A TCHAR to ANSI // T2BSTR TCHAR to BSTR // T2OLE TCHAR to OLE // T2W TCHAR to WCHAR // W2A WCHAR to ANSI // W2BSTR WCHAR to BSTR // W2OLE WCHAR to OLE // W2T WCHAR to TCHAR // About different character and string types: // ------------------------------------------ // char (or CHAR) character types are ANSI (8 bits). // wchar_t (or WCHAR) character types are Unicode (16 bits). // TCHAR characters are Unicode if the _UNICODE macro is defined, otherwise they are ANSI. // BSTR (Basic String) is a type of string used in Visual Basic and COM programming. // OLE is the same as WCHAR. It is used in Visual Basic and COM programming. namespace textconv_helper { // Forward declarations of our classes. They are defined later. class CA2A_; class CA2W_; class CW2A_; class CW2W_; class CA2BSTR_; class CW2BSTR_; // typedefs for the well known text conversions typedef CA2W_ A2W_; typedef CW2A_ W2A_; typedef CW2BSTR_ W2BSTR_; typedef CA2BSTR_ A2BSTR_; typedef CW2A_ BSTR2A_; typedef CW2W_ BSTR2W_; #ifdef _UNICODE typedef CA2W_ A2T_; typedef CW2A_ T2A_; typedef CW2W_ T2W_; typedef CW2W_ W2T_; typedef CW2BSTR_ T2BSTR_; typedef BSTR2W_ BSTR2T_; #else typedef CA2A_ A2T_; typedef CA2A_ T2A_; typedef CA2W_ T2W_; typedef CW2A_ W2T_; typedef CA2BSTR_ T2BSTR_; typedef BSTR2A_ BSTR2T_; #endif typedef A2W_ A2OLE_; typedef T2W_ T2OLE_; typedef CW2W_ W2OLE_; typedef W2A_ OLE2A_; typedef W2T_ OLE2T_; typedef CW2W_ OLE2W_; class CA2W_ { public: CA2W_(LPCSTR pStr, UINT codePage = CP_ACP) : m_pStr(pStr) { if (pStr) { // Resize the vector and assign null WCHAR to each element int length = MultiByteToWideChar(codePage, 0, pStr, -1, NULL, 0) 1; m_vWideArray.assign(length, L \0 ); // Fill our vector with the converted WCHAR array MultiByteToWideChar(codePage, 0, pStr, -1, &m_vWideArray[0], length); } } ~CA2W_() {} Operator LPCWSTR() { return m_pStr ? &m_vWideArray[0] : NULL; } operator LPOLESTR() { return m_pStr ? (LPOLESTR)&m_vWideArray[0] : (LPOLESTR)NULL; } private: CA2W_(const CA2W_&); CA2W_& operator= (const CA2W_&); std::vector<wchar_t> m_vWideArray; LPCSTR m_pStr; }; class CW2A_ { public: CW2A_(LPCWSTR pWStr, UINT codePage = CP_ACP) : m_pWStr(pWStr) // Usage: // CW2A_ ansiString(L"Some Text"); // CW2A_ utf8String(L"Some Text", CP_UTF8); // // or // SetWindowTextA( W2A(L"Some Text") ); The ANSI version of SetWindowText { // Resize the vector and assign null char to each element int length = WideCharToMultiByte(codePage, 0, pWStr, -1, NULL, 0, NULL, NULL) 1; m_vAnsiArray.assign(length, \0 ); // Fill our vector with the converted char array WideCharToMultiByte(codePage, 0, pWStr, -1, &m_vAnsiArray[0], length, NULL, NULL); } ~CW2A_() { m_pWStr = 0; } operator LPCSTR() { return m_pWStr ? &m_vAnsiArray[0] : NULL; } private: CW2A_(const CW2A_&); CW2A_& operator= (const CW2A_&); std::vector<char> m_vAnsiArray; LPCWSTR m_pWStr; }; class CW2W_ { public: CW2W_(LPCWSTR pWStr) : m_pWStr(pWStr) {} operator LPCWSTR() { return const_cast<LPWSTR>(m_pWStr); } operator LPOLESTR() { return const_cast<LPOLESTR>(m_pWStr); } private: CW2W_(const CW2W_&); CW2W_& operator= (const CW2W_&); LPCWSTR m_pWStr; }; class CA2A_ { public: CA2A_(LPCSTR pStr) : m_pStr(pStr) {} operator LPCSTR() { return (LPSTR)m_pStr; } private: CA2A_(const CA2A_&); CA2A_& operator= (const CA2A_&); LPCSTR m_pStr; }; class CW2BSTR_ { public: CW2BSTR_(LPCWSTR pWStr) { m_bstrString = ::SysAllocString(pWStr); } ~CW2BSTR_() { ::SysFreeString(m_bstrString); } operator BSTR() { return m_bstrString; } private: CW2BSTR_(const CW2BSTR_&); CW2BSTR_& operator= (const CW2BSTR_&); BSTR m_bstrString; }; class CA2BSTR_ { public: CA2BSTR_(LPCSTR pStr) { m_bstrString = ::SysAllocString(textconv_helper::CA2W_(pStr)); } ~CA2BSTR_() { ::SysFreeString(m_bstrString); } operator BSTR() { return m_bstrString; } private: CA2BSTR_(const CA2BSTR_&); CA2BSTR_& operator= (const CA2BSTR_&); BSTR m_bstrString; }; } #endif // _TEXTCONV_HELPER_HPP_INCLUDED_textconv_helper_test.cpp
#include "stdafx.h" #include <iostream> #include <string> #include "textconv_helper.hpp" int main() { std::cout << textconv_helper::W2A_(textconv_helper::A2W_("我爱中国")) << std::endl; getchar(); return 0; }
相关推荐: