Java编程学习知识点分享 入门必看

  阿尔法颜色组成(alpha color component):颜色组成用来描述颜色的透明度或不透明度。阿尔法组成越高,颜色越不透明。

  API:应用编程接口。针对软件包或“工具箱”的接口说明。API包含了工具箱中所有类或子程序及其使用说明。

  Applet:与可以单独运行的应用程序不同,Applet是一种在Web浏览器中运行在Web页面上的Java程序。

  动画(animation):由一组静态图片快速显示展示出动态效果。每一幅静态图片叫做帧。在Java中,动画通常由 Timer 对象驱动。每次定时器触发时,会显示动画的下一帧。

  反锯齿(antialiasing):当图形和文本以像素方式显示时,可以通过调整像素的颜色减轻“锯齿”效应。反锯齿画图时,图形只覆盖像素的一部分,图形的颜色与该像素之前的颜色混合而成。混合的程度由覆盖像素的多少决定。

  数组(array):一个顺序排列的元素列表。列表中,每个元素都可以由自己的索引标识,即序号。在Java中,数组里所有元素必须类型相同,该类型也称作数组的基类型。数组是一种可随机访问的数据结构,也就是说,你可以随时直接访问数组中的任意元素。

  数组类型(array type):这种数据类型的值是数组。比如类型的名字为 Type,那么 Type[] 就是数组类型,基类型为 Type。

  赋值语句(assignment statement):计算机程序中的一种语句,可以读取或计算数值,并将其存储到变量中。Java中的赋值语句形式为:变量名 = 表达式。

  异步事件(asynchronous event):异步事件指发生时间不可预料的事件,计算机程序无法对其控制。像点击鼠标、按键这样的用户输入事件都是异步的。

  ASCII码:美国信息交换标准码。这种编码使用7个比特对字符编码。ASCII码只支持128个字符,不支持重音字符、非英语字符、特殊符号或非字符化语言的表意符号,比如中文。Java采用了容量更大、更加完整的Unicode编码处理字符。 基线条件(base case):在递归算法中,基线条件可以直接处理不需要继续递归。

  二进制数(binary number):数值被编码为一组0、1序列。一般数字以“10为基数”,二进制数与其类似,只是以“2为基数”。

  二叉树(binary tree):二叉树是一种链式数据结构。可以为空树,或者由两棵更小的二叉树(可能为空树)与根节点组成。根节点包含了指向两棵子树的指针。这两棵更小的二叉树被称作左子树和右子树。

  比特(bit):一位二进制数,可能是0或1。

  黑盒(black box):指系统或组件在使用时无需关心内部结构。黑盒包括接口和实现。在系统中,被当做组件使用的黑盒叫做模块。

  块(block):在Java编程中,被花括号({})包围的一组语句称为块。(代码)块用来将一组语句组合成一条语句。块可以为空,表示不包含任何语句,即一对空的花括号。

  阻塞操作(blocking operation):一个操作如果需要等待某些事件发生就称为“阻塞”操作,比如从网络连接读取数据。执行阻塞操作的线程会一直处在“阻塞”状态,直到事件发生。处于阻塞状态时,线程不能执行任何指令。而程序中的其它线程可以继续执行。

  阻塞队列(blocking queue):当阻塞队列为空时,出队操作会引发阻塞,直到队列中有新成员加入。如果阻塞队列有大小限制,当队列填满时,入队操作也会引起阻塞。

  自底向上设计(bottom-up design):自底向上设计是一种软件设计方法。从系统的基础组件开始设计,然后将它们组合成更复杂的组件,诸如此类。1.基本硬件准备,以windows server 2008 为例

  //1台主机

  //1个万维网域名

  //域名通过ssl认证

  //--服务器端安装以下--

  //------nginx

  //------wampserver

  //----------Apache

  //----------Mysql

  //----------PHP

  //------node

  //---------express

  //------pm2

  1.以腾讯云为例 服务器搭建

  1.主机与域名DNS解析

  1.购买云主机,购买成功以后,如图:

  2.购买域名,购买成功并认证,如图:

  3.添加域名解析规则:

  4.SSL 认证:

  5.ssl 认证

  认证成功,就可以下载证书配置自己服务器了。

  不同服务器具体配置如下:

  参考https://www.qcloud.com/document/product/400/4143

  2. 笔者使用的是 Nginx 证书部署

  2.1 获取证书

  Nginx文件夹内获得SSL证书文件 1www.domain.com_bundle.crt 和私钥文件 2www.domain.com.key, 1_www.domain.com_bundle.crt 文件包括两段证书代码 “-----BEGIN CERTIFICATE-----”和“-----END CERTIFICATE-----”, 2_www.domain.com.key 文件包括一段私钥代码“-----BEGIN RSA PRIVATE KEY-----”和“-----END RSA PRIVATE KEY-----”。

  2.2 证书安装

  将域名 www.domain.com 的证书文件1www.domain.com_bundle.crt 、私钥文件2www.domain.com.key保存到同一个目录,例如/usr/local/nginx/conf目录下。 更新Nginx根目录下 conf/nginx.conf 文件如下:

  server {

  listen 443;

  server_name www.domain.com; #填写绑定证书的域名

  ssl on;

  ssl_certificate 1_www.domain.com_bundle.crt;

  ssl_certificate_key 2_www.domain.com.key;

  ssl_session_timeout 5m;

  ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置

  ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置

  ssl_prefer_server_ciphers on;

  location / {

  root html; #站点目录

  index index.html index.htm;

  }

  }

  配置完成后,先用bin/nginx –t来测试下配置是否有误,正确无误的话,重启nginx。就可以使 https://www.domain.com 来访问了。

  注:


配置文件参数


说明


listen 443


SSL访问端口号为443


ssl on


启用SSL功能


ssl_certificate


证书文件


ssl_certificate_key


私钥文件


ssl_protocols


使用的协议


ssl_ciphers


配置加密套件,写法遵循openssl标准

  2.3 使用全站加密,http自动跳转https(可选)

  对于用户不知道网站可以进行https访问的情况下,让服务器自动把http的请求重定向到https。 在服务器这边的话配置的话,可以在页面里加js脚本,也可以在后端程序里写重定向,当然也可以在web服务器来实现跳转。Nginx是支持rewrite的(只要在编译的时候没有去掉pcre) 在http的server里增加rewrite ^(.*) https://$host$1 permanent; 这样就可以实现80进来的请求,重定向为https了。

  服务器配置

  参考文档:https://github.com/tencentyun/wafer

  后台服务原理:

  2.接下来配置服务器(以官方三木聊天室demo为例)

  2.1 nginx 配置

  server {

  listen 443;

  server_name www.lovmin.cn; #填写绑定证书的域名

  ssl on;

  ssl_certificate 1_www.lovmin.cn_bundle.crt;#下载好的证书文件

  ssl_certificate_key 2_www.lovmin.cn.key;#下载好的证书文件

  ssl_session_timeout 5m;

  ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置

  ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置

  ssl_prefer_server_ciphers on;  ?

  location / {

  proxy_pass localhost:5757;#node服务器地址与端口,因为同一台服务器故使用localhost

  }  ?

  }

  2.2 聊天室 server服务配置

  注意:window server 配置文件需要手动 sdk.config 创建到 C:\qcloud\sdk.config

  {

  "serverHost": "www.zhangximufeng.com",//服务器域名

  "authServerUrl": "http://10.141.19.17:8000/",//鉴证服务器地址(其实就是apache服务器地址)

  "tunnelServerUrl": "https://ws.qcloud.com",//这个可以不改,信道服务器地址

  "tunnelSignatureKey": "7fb7d1c161b7ca52d73cce0f1d833f9f5b5ec89",//随机码

  "networkTimeout":30000//可不改

  }  ?

  参考文档地址:

  https://github.com/tencentyun/wafer-node-server-sdk

  demo 源码

  https://github.com/tencentyun/wafer-node-server-demo

  2.3 apache 服务器(鉴证服务器)配置及数据库设

  鉴证服务器

  下载官方 会话服务器源码

  会话服务器的源码

  https://github.com/tencentyun/wafer-session-server

  选择合适的方式部署 Wafer 服务后,按照部署类型:

  · 自动部署 - 无需进行任何操作,会话服务器已经可以使用

  · 镜像部署 - 按照下面步骤进行初始化工作

  · 自行部署 - 按照下面步骤进行初始化工作

  环境准备

  确保机器中已安装 WAMP 环境。Linux server 可以选择安装LAMP 环境

  代码部署

  把本项目代码部署到 /opt/lampp/htdocs/mina_auth 目录中。

  自动建表

  执行下面命令创建运行时所需表:

  /opt/lampp/bin/mysql -u root -p mypassword < /opt/lampp/htdocs/mina_auth/system/db/db.sql

  初始化 appId 和 appSecret

  登录到 MySql 后,手动插入配置到 cAuth 表中。

  /opt/lampp/bin/mysql -u root -p root #登录本地mysql

  use cAuth;

  insert into cAppinfo set appid=‘Your appid‘,secret=‘Your secret‘;

  测试服务可用性

  curl -i -d‘{"version":1,"componentName":"MA","interface":{"interfaceName":"qcloud.cam.id_skey","para":{"code":"001EWYiD1CVtKg0jXGjD1e6WiD1EWYiC","encrypt_data":"DNlJKYA0mJ3+RDXD/syznaLVLlaF4drGzeZvJFmjnEKtOAi37kAzC/1tCBr7KqGX8EpiLuWl8qt/kcH9a4LxDC5LQvlRLJlDogTEIwtlT/2jBWBuWwBC3vWFhm7Uuq5AOLZV+xG9UmWPKECDZX9UZpWcPRGQpiY8OOUNBAywVniJv6rC2eADFimdRR2qPiebdC3cry7QAvgvttt1Wk56Nb/1TmIbtJRTay5wb+6AY1H7AT1xPoB6XAXW3RqODXtRR0hZT1s/o5y209Vcc6EBal5QdsbJroXa020ZSD62EnlrOwgYnXy5c8SO+bzNAfRw59SVbI4wUNYz6kJb4NDn+y9dlASRjlt8Rau4xTQS+fZSi8HHUwkwE6RRak3qo8YZ7FWWbN2uwUKgQNlc/MfAfLRcfQw4XUqIdn9lxtRblaY="}}}‘ http://127.0.0.1/mina_auth/

  按照源码 db.sql 文件 建立数据库

  数据库设计

  全局信息表 cAppInfo 保存会话服务所需要的配置项。

  Field

  Type

  Null

  key

  Extra

  appid

  varchar(200)

  NO

  PRI

  申请微信小程序开发者时,微信分配的 appId

  secret

  varchar(300)

  NO

  申请微信小程序开发者时,微信分配的 appSecret

  login_duration

  int(11)

  NO

  登录过期时间,单位为天,默认 30 天

  session_duration

  int(11)

  NO


会话过期时间,单位为秒,默认为 2592000 秒(即30天)

  ?会话记录 cSessionInfo 保存每个会话的数据。

  Field

  Type

  Null

  key

  Extra

  id

  int(11)

  NO

  MUL

  uuid

  varchar(100)

  NO

  会话 uuid

  skey

  varchar(100)

  NO

  会话 Skey

  create_time

  datetime

  NO

  last_visit_time

  datetime

  NO

  open_id

  varchar(100)

  NO

  MUL

  session_key

  varchar(100)

  NO

  微信服务端返回的 `session_key` 值

  user_info

  varchar(2048)

  YES

  已解密的用户数据


会话 ID(自增长)


会话创建时间,用于判断会话对应的 open_id 和 session_key 是否过期(是否超过 cAppInfo 表中字段login_duration 配置的天数)


最近访问时间,用于判断会话是否过期(是否超过 cAppInfo 表中字段 session_duration 的配置的秒数)


微信服务端返回的 open_id 值

  建数据库的详细 SQL 脚本请参考 db.sql

  搭建会话管理服务器

  服务器配置注意:

  1、会话服务器源码中连接mysql数据库的用户名密码确保与数据库保持一致

  2、sdk.config文件在不同server系统中位置不同,具体位置请阅读sdk源码config.js文件

  3、sdk.config文件中不能有注释(后面会把字符串转对象)

  小程序客户端配置

  参考文档:https://github.com/tencentyun/wafer-client-sdk

  demo 地址:https://github.com/tencentyun/wafer-client-demo

  /**

  * 小程序配置文件

  * config.js

  */  ?

  // 此处主机域名修改成腾讯云解决方案分配的域名

  var host = ‘www.lovmin.com‘;  ?

  var config = {  ?

  // 下面的地址配合云端 Demo 工作

  service: {

  host,  ?

  // 登录地址,用于建立会话

  loginUrl: `https://${host}/login`,  ?

  // 测试的请求地址,用于测试会话

  requestUrl: `https://${host}/user`,  ?

  // 测试的信道服务地址

  tunnelUrl: `https://${host}/tunnel`,

  }

  };  ?

  module.exports = config;

  开发者设置

原文地址:https://www.cnblogs.com/zgy0303/p/8183563.html

时间: 2024-10-11 15:49:31

Java编程学习知识点分享 入门必看的相关文章

Cocos2d-x 3.1.1 安装和创建项目---(入门必看)

1.安装python2.7.8,安装cocos2dx 3.1.1,并将python2.7.8安装路径加入系统环境变量中; 2.python2.7.8很简单,基本就是默认就可以了. 3.cocos2dx 3.1.1下载完之后,就解压.然后F:\cocos2d-x-3.1.1\build(我的解压之后是放在f盘的),然后在build这里可以找到cocos2d-win32.vc2012.sln,用vs2012打开它,然后生成解决方案(生成的这个过程比较慢,大概10分钟吧),然后在F:\cocos2d-

Java工程师学习指南(入门篇)

Java工程师学习指南 入门篇 最近有很多小伙伴来问我,Java小白如何入门,如何安排学习路线,每一步应该怎么走比较好.原本我以为之前的几篇文章已经可以解决大家的问题了,其实不然,因为我之前写的文章都是站在Java后端的全局上进行思考和总结的,忽略了很多小白们的感受,而很多朋友都需要更加基础,更加详细的学习路线. 所以,今天我们重新开一个新的专题,分别按照四篇文章讲述Java的学习路线(分别是入门篇,初级篇,中级篇,高级篇),笔者也打算趁此机会,回忆一下自己的Java学习历程.今天我们要讲的是,

java编程学习——工具

在中国大学慕课网学习翁恺老师的Java课程. 学习java编程选用Eclipse编辑器,有时编辑器少不一定是坏事,反正用这个就是对的. 学习编程要有两个习惯: (1)下载软件要去官网下载,可以保证是最新的软件,并且是最正宗的,不会被别人修改: (2)阅读看英文文档,高中的词汇量即可,很多人只需克服一下心里障碍: 在eclipse官网下载64的压缩包,解压. 在Oracle官网下载java se,安装运行.8u131,8表示Java8,u是update的简写,131是第131次更新: 在eclip

从编程菜鸟到技术大牛必看书籍

语言经典书: C:C程序设计语言(K&R)->C和指针->C专家编程->C陷阱与缺陷->你必须知道的495个C语言问题 C++: C++ primer ->effective C++->深度探索C++对象模型->stl源码分析->C++必知必会 java:java编程思想->java并发编程->深入理解Java虚拟机:JVM高级特性与最佳实践 算法经典书: 算法导论->数据结构与算法分析(维斯)->编程之美->剑指off

【慕课网】php工程师学习计划之我的学习笔记——01 入门必学web基础 htmlcss基础课程 篇

为了进一步学习PHP,本周我选定了慕课网的PHP工程师学习计划, 从今天2015-07-06 10:24:47开始从头学习:计划本周尽快学习完成本课程,谨此作为笔记. 有个好的学习计划和思路非常非常重要,非常感谢慕课网提供本套学习计划,希望更多地学习平台能提供像这样全面一条龙学习思路清晰地教程. 计划图:链接 我的学习状况:2015-07-06 10:29:46 开始随记: php工程师学习计划笔记——01 入门必学web基础 htmlcss基础课程 篇 入门篇: text-align:cent

JAVA的环境安装部署——小白必看

初识JAVA Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易用两个特征.Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程. 程序与JAVA JAVA技术平台 安装JAVA语言开发工具包JDK JDK压缩包链接:https://pan.baidu.com/s/1yyPlSS2Gu7O-RV3oZsY-Yw提取码:e22q首先拷贝压缩包,给

java编程学习笔记

1.1 在java语言学习中,程序是由类构建而成的.我们可以根据某个类的定义创建出任意数量的对象,这些对象被称为这个类的实例.我们可以将类想像成一个工厂,它拥有制造机械配件的蓝图和说明,而对象就是这个工厂制造的机械配件. 类包含成员,主要包含字段和方法等.字段是属于类本身或者类对象的数据变量.他们构成了类或者对象的状态.方法是由操作字段的语句构成的集合,用于处理状态. 语句定义了类的行为,他们能够对字段或者其他变量进行赋值,计算机表达式的值,调用方法,或并且还能够控制执行流程. 1 class

Java培训学习技巧分享

好多自学Java或者参加兄弟连Java培训班的同学都问小编:怎样才能学好Java,晋级大神?有什么好的方法借鉴?小编的一位朋友在兄弟连学习完做Java开发有关的工作,看看他当年是怎样学Java的? 爆料他的学习始末,供大家学习参考. 技巧一:找到一本合适的书或者老师来辅导你 Java系统是一项庞大的软件工程结晶,互联网已经进入大数据时代,海量的数据,需要安全保护.学习Java势在必行,不要认为自己有能力靠百度下载到的零散教程就能够学透它,起初总感觉自己的能力特别强,结果半年后就发现:不仅浪费的时

STM32环境搭建/学习观点/自学方法 入门必看

文章转自armfly开发板V4软件开发手册,分享学习~ 今天有幸看到armfly的开发板软件开发手册,开头的基础知识,真的很有用,还好有看到,一切都不迟,感悟很多,摘抄部分,学习分享~ 关于开发环境的搭建 (个人认为,好用的工具,顺手的开发环境,对于编程是一种好的习惯,也是一种好的享受,所以,在环境搭建方面,我还是比较在意软件的互相联合使用,工程建立的规范化等等,这样可以尽量少的在后期更换不同的环境,变软会很浪费时间,一次到位,一路顺风顺水~) 个人偏好的环境搭建: 集成开发环境(IDE):Ke