sf123com私服新开,如何评价我的世界?

2023-09-28 18:00:04 85阅读

sf123com私服新开,如何评价我的世界?

这里是专注于有为青年游戏体验的敢为青年游场,我是敢哥!

如何评价《我的世界》?

你要问敢哥怎么评价?敢哥会毫不犹豫的告诉你,MC是当下最屌的沙盒游戏,没有之一!

sf123com私服新开,如何评价我的世界?

(MC已经进入课堂,成为了普世文化教育的一部分)

作为一款创造性极强的沙盒游戏,我的世界无疑是非常成功的,一上线就受到广大玩家的喜爱,热度久久不曾下降,即使迷你世界崛起,也没有对我的世界玩家总量造成太大影响。

这些都可以说明,我的世界游戏确实有他的独到之处,值得其他沙盒游戏学习。

低调奢华的游戏

作为沙盒游戏目前的代表,我的世界所呈现的世界并没有一反沙盒游戏的特点表现出华丽的画面感,而是延续了沙盒游戏的传统,一切靠自己。

也就是说,我的世界只是给了玩家一个创造的平台,一个空壳子,里面是什么东西,全靠玩家自己去发掘自己去创造了。

这就是低调,说他奢华也是可以做到的,只要玩家的想象力创造力高,奢华的建筑一样可以搭建起来。

纷纷效仿的对象

我的世界自上线以来,广受追捧的同时,也受到了行业内其他游戏的模仿甚至抄袭,其中迷你世界算是做的比较过分的了,不但相似度极高,而且还倒打一耙说我的世界抄袭,这也引起了两个游戏冲突不断,闹出了不小的动静。

衡量一款游戏成不成功就看他被抄袭过多少就知道啦

多人联机,共同创作

和许多其他的沙盒游戏不同,我的世界不仅可以充分发挥自己的想象力,而且可以多人联机,一起创造。这个创造对象可以是小镇,可以是都市,创作背景确实很庞大,玩家思想的局限性非常小。

这也是很多老方块的情怀所在啊!参考最近MC引入课堂做为教学课程来看,MC已经达到了所有游戏都没有达到的高度:被普世文化认同!

总结:我的世界作为当下沙盒游戏的代表,确实是有一定的原因的。毕竟MC已经是一种文化一种信仰!

我是敢哥!日常帮大家解析各类游戏,喜欢的朋友记得点下关注哟!

三国群英传7全部秘籍与编号?

在进入游戏后的主界面,输入cheatmodeopen按下enter键 启动秘籍(以后均是右Ctrl打开秘技输入)。 主界面: 输入useeventnation按enter就可以扮演刘邦和项羽了(霸王在临隐藏关)! 大地图: 游戏直接胜利:mode overwin 大地图时间加快:sftime 1~100 (数字越小速度越快) 增加建物金钱:addvalue cmoney 建物编号 金钱数 物品加入国库:addthing 物品编号 数量 增加武将经验值:addvalue exp 武将编号 经验值 开启事件地点:openeventplace 事件地点编号 选择出战部队界面: 我方直接获胜:bfresult 0 敌方直接获胜:bfresult 1 改变我方兵种:st 兵种编号 千人战界面: 施放武将技:bm 武将技编号 施放组合技:cbm 组合技编号 施放情义技:bm 武将技编号 时间暂停:time 千人战以平局结束:bfover 下面给出编号 城市编号: 1 西凉 2 陇右 3 安定 4 弘农 5 咸阳 6 陈仓 7 扶风 8 街亭 9 天水 10 雁门 11 绛 12 平阳 13 晋阳 14 邺 15 虎牢 16 壶关 17 界桥 18 汜水 19 代郡 20 平原 21 乌巢 22 濮阳 23 乐陵 24 南皮 25 高唐 26 北平 27 襄平 28 昌黎 29 乐浪 30 带方 31 下卞 32 祈山 33 阳平 34 梓潼 35 成都 36 江州 37 五丈原 38 白水 39 上庸 40 汉中 41 筑阳 42 蕸萌 43 巴郡 44 襄阳 45 白帝 46 临江 47 长阪波 48 乌林 49 郿 50 长安 51 洛阳 52 宛 53 延津 54 官渡 55 新野 56 许昌 57 汝南 58 陈留 59 庐江 60 谯 61 小沛 62 定陶 63 乐安 64 北海 65 都阳 66 下邳 67 徐州 68 淮安 69 盱眙 70 寿春 71 合淝 72 江夏 73 夏口 74 赤壁 75 湘潭 76 桂阳 77 长沙 78 庐陵 79 南海 80 豫章 81 区阿 82 建业 83 南昌 84 鄱阳 85 吴 86 会稽 87 松江 88 江陵 89 零陵 90 桂林 91 涪陵 92 武陵 93 交趾 94 建宁 95 云南 96 夷州 97 鹿耳门 98 邪马台 99阿苏 100出云 101 佐贺 102 阿久根 103下关 所有道具编号: 001 木铜铃 002 尸兵符印 003 秘忍卷轴 004 将军印盒 005 匈奴号角 006 黄巾兵符 007 投石兵符 008 弩车兵符 009 兽兵兵符 010 女兵兵符 011 蛮兵兵符 012 骑兵兵符 013 弩兵兵符 014 枪兵兵符 015 弓兵兵符 016 步兵兵符 017-021(新兵种) 022 箭矢阵法书 023 天地阵法书 024 翔鹰阵法书 025 雁形阵法书 026 锥形阵法书 027 钩形阵法书 028 圆形阵法书 029 方形阵法书 030-041(用品) 042 莫邪干将40 043 草剃30 044 冰凤炎凤29 045 仁义无双29 046 含铁双股剑28 047 巨阙剑28 048 魑魅魍魉28 049 逆天剑28 050 倚天剑27 051 虎牙剑26 052 皇天怒25 053 飞星24 054 流采24 055 华铤24 056 不知火24 057 七星刀23 058 方土23 059 东极23 060 破山剑22 061 青釭剑22 062 白虹22 063 紫电22 064 辟邪22 065 流星22 066 青冥22 067 百里22 068 村正21 069 古锭刀21 070 流光20 071 双股剑18 072太一17 073 凄然17 074 倭刀15 075 风云斩15 076 龙渊剑15 078火精15 079-090(垃圾) 091 真火朱雀扇29 092 朱雀扇27 093 玄冥法扇25 094 金羽扇23 095 驭风剑翎扇21 096 火焰扇20 097 天罡劈水扇20 098 彩霓扇18 099孔雀扇17 100 鹏羽扇16 101 黯羽扇16 102 鹤羽扇15 103 蝉翼扇14 104-110(垃圾) 111 翔龙偃越刀30 112 青龙偃越刀29 113 雷公鞭28 114 虎贲大刀28 115 日月双锤27 116 鳌头两刃斧27 117 战国大刀26 118 春秋大刀26 119 混沌双斧24 120 天罡斧24 121 混沌开天斧23 122 三环大刀23 123 波母23 124 南极23 125 编驹23 126 西域镰刀22 127 铁蒺蔾骨柔22 128 车轮斧22 129 玄铁碎棍22 130 鬼头大刀21 131 枣阳锤21 132 云月刀20 133 两刃斧20 134 鬼刃刀20 135金瓜锤20 136 二郎刀18 137 三尖刀18 138 破阵刀17 139 双手斧17 140 双铁钩15 141 掉刀15 142-156(垃圾) 224 UJ大鸡腿20(大刀) 157 神鬼方天昼戟31 158 方天昼戟30 159 万胜丈八蛇矛30 160 丈八蛇矛29 161 九天龙魂贯30 162 龙胆枪29 163 霸王凤凰枪30 164 凤凰枪29 165 虎贲方天戟27 166 神龙戈26 167 破军蒺蔾枪25 168 青天钩镰枪25 169 西极23 170 不周23 171 龙髓枪23 172 庞龙戟22 173 紫龙戟22 174 斩马钩镰枪21 175 焰火尖枪21 176 拐刃蒺蔾枪20 177 双刃月牙戟20 178 龙角叉19 179 铁脊蛇矛18 180 蛇矛18 181 凤钺戟17 182 长铩16 183 铁钺戟16 184 白玉戟15 185 十字枪15 186-204(垃圾) 205 万里起云烟27 206 机铁连环弓25 207 北极23 208 追魂弓21 209 爆炎弓19 210 神鸢弓18 211 百里弓17 212 破甲弓15 213 克敌弓14 214 迅雷弓12 215 白金弓11 216 神臂弓10 217-223(垃圾) 225 幼麒麟70 226 黑麒麟45 227 火麒麟40 228 白玉麒麟30 229 天马30 230 龙马30 231 四不像30 232 穷奇30 233 飞镰30 234 追风白凤30 235 紫金赤兔马30 236 赤兔马29 237 卷毛赤兔马28 238 (空屁)! 239 爪黄飞电28 240 骷髅马28(废柴,不能与死亡骑士的马比@.@) 241 铁甲站马27 242 冲角巨牛27 243 松风26 244 重甲黑豹26 245 重甲战虎26 246 燎原火25 247 冲城巨象25 248 的卢25 249 印度白象24 250 藤甲巨象24 251 印度神象22 252 藤甲战牛22 253 青牛20 254 (空屁)! 255 铁甲战马20 256 铁骑马19 257 黑豹19 258 战虎19 259 紫骍18 260 汗血马18 261 云鬃马16 262-284(垃圾) 285 西蜀地形图10 286 幻世录II50 287 幻世录40 288 兵书24篇20 289 孟德新书15 290 史记10 291 春秋左传5 459 太平要术40 460 遁甲天书35 366 麒麟金角 367 青龙逆鳞 368 玄武灵壳 369 白虎银牙 370 朱雀炎羽 553 攻城方略20 554 强袭方略20 555 防御方略20 556蒙冲船20 557 行军方略20 558 六稻兵书20 559 真龙玄印20 560 青囊书20 561 机铁秘术5 562 真机铁秘术10 292 赤焰术诀 174 赤焰秘法书(+119依此类推)可能有错! 175 连弩兵法 176 连弩秘诀书 177 火箭兵法 178 火箭秘诀书 179 龙炮兵法 180 龙炮秘诀书 181 炬石兵法 182 炬石秘诀书 183 火轮兵法 184 火轮秘诀书 185 滚石兵法 186 滚石秘诀书 187 地泉术诀 188 地泉秘法书 189 地茅兵法 190 地茅秘诀书 191 突石术诀 192 突石秘法书 193 火药袋 194 火药桶 195 烈火符 196 爆炎符 197 太极印 198 太极符印 199 八卦术诀 200 八卦秘法书 201 雷击术诀 202 雷击秘法书 203 五雷术诀 204 狂雷秘法书 205 伏兵兵法 206 伏兵秘诀书 207 后伏兵法 208 后伏秘诀书 209 贲轀兵法 210 贲轀秘诀书 211 旋灯术诀 212 旋灯秘法书 213 莲华术诀 214 莲华秘法书 215 旋风术诀 216 龙卷秘法书 217 突击战鼓 218 背水战鼓 219 火牛兵法 220 火牛秘诀书 221 冲车 222 攻城战车 223 召鬼石 224 唤魂法珠 225 炎兽像 226 喷火龙车 227 驱豹兵法 228 驱豹秘诀书 229 神鸢兵法 230 神鸢秘诀书 231 井阑 232 攻城塔 233 时空宝珠 234 黄泉玉 235 冥府宝珠 236 命疗石 237 活疗宝珠 238 回天石 239 活天宝珠 240 天灵镜 241 地灵镜 242 东岳之士 243 浮雷术诀 244 浮雷秘法书 245 恶鬼盾 246 鬼王盾 247 麒麟金角 248 青龙逆鳞 249 玄武灵壳 250 白虎银牙 251 朱雀炎羽 252 人行纸符 253 人皮傀儡 254 土遁卷轴 255 暗杀卷轴 256 雷火卷轴 257 赤鬼卷轴 258 苦无卷轴 259 风魔卷轴 262 血剑诀 263 血剑秘录 264 天剑诀 265 天剑秘录 266 地龙珠 267 地龙旗 268 火龙珠 269 火龙旗 270 水龙珠 271 水龙旗 272 风龙珠 273 风龙旗 274 龙牙机关 275 龙牙解构图 277 太阳幡 278 太阴幡 279 雷雨幡 280 飞雪幡 281 炼气炉 282 化气炉 283 先攻要诀 284 先攻战术 285 天时战术 286 地利战术 287 人和战术 290 御赐战鼓 291 毒舌心得 292 海螺号角 293 楚歌战谱 294 破甲要诀 295 防御要诀 296 障碍要诀 297 行军要诀 298 暴君之首 299 蚩尤之首 300 霸王之首 301 传国玉玺 302 断路要诀 303 撤退要诀 304 鹿角要诀 305 鹿角战术 306 鹿角秘典 307 地雷要诀 308 地雷战术 309 地雷秘典 310 地钉忍法帖 311 地钉秘忍术 312 地钉裏奥义 313 埋伏战术 314 埋伏秘典 315 援军战术 316 援军秘典 317 唤尸符 318 唤尸令 319 封技战术 320 封技秘典 321 饕餮之牙 322 饕餮之骨 323 饕餮之角 324 太平要术 326 遁甲天书 327 甩手短剑 328 经验宝珠 329 策反要诀 330 抚军要诀 331 石墙图卷 332 拒马图卷 333 铁盾图卷 334 破阵要诀 335 回春石 336 回春晶石 337 气疗珠 338 气疗宝珠 339 气疗金珠 340 通天镜 341 蔽天帆 342 无我明镜 343 无极乾坤图 346 铁兽机关 347 铁兽结构图 348 箭楼机关 349 箭楼结构图 350 铜人机关 351 铜人结构图 352 前锋拆解书 353 木牛 354 流马 特殊地点事件编号: 201 毒龙潭 202 猛虎穴 203 大雪山 204 火焰山 205 兽神洞 206 青龙塔 207 白虎塔 208 玄武塔 209 朱雀塔 210 麒麟塔 211 桃源仙乡212 尸洞 213 九泉之渊 所有武将技编号: 4 赤焰 5 赤焰燃 6 赤焰火海 7 连弩 8 连弩激射 9 连弩狂涛 10 火箭烈 11 火箭强袭 12 火箭天袭 13 龙炮 14 迫击龙炮 15 冲射龙炮 16 炬石 17 炬石轰 18 炬石炼狱 19 火轮 20 火轮冲 21 火轮涛杀 22 滚石 23 滚石剧压 24 滚石怒冲 28 地泉 29 地泉冲 30 地泉鲸浪 31 地茅刺 32 地茅乱刺 33 地茅遍地 40 突石 41 突石剑 42 突剑四方 43 炎墙 44 炎墙烈烧 45 集火柱 46 强火柱 47 太极门 48 太极华阵 49 八卦二象阵 50 八卦四方阵 51 八卦六角阵 52 雷击 53 雷击闪 54 雷光燋狱 55 五雷袭 56 五雷轰顶 57 狂雷天牢 58 伏兵班阵 59 伏兵排阵 60伏兵连阵 61 后伏班阵 62 后伏排阵 63后伏连阵 64 轒轀车 65 参轒轀车 66 肆轒轀车 67 旋灯 68 旋灯火 69 旋灯怒张 70 莲华 71 莲华爆 72 莲华轰天 73 心剑 74 心剑齐发 75 剑轮舞 76 剑论斩 77 神鬼乱舞 78 旋风 79 龙旋风 80 龙卷旋风 84 长枪突击 85 铁骑突击 86 火牛阵 87 火牛群舞 88 火牛烈崩 89 冲车 90 驷冲车 91 尸鬼 92 食尸鬼 93 食尸鬼阵 94 炎兽 95 炎兽杀阵 96 驱豹 97 驱豹冲 98 驱豹突击 99 神鸢 100 神鸢弹 101 神鸢空袭 102 井阑立 103 井阑冲阵 104 八门金锁 105 生死门 106 地狱之门 107 命疗术 108 体疗术 109 活疗术 110 回天术 111 返天术 112 活天术 113 半月斩 114 三日月斩 115 日月轮斩 116 三圣华斩 117 五岳华斩 118 飞鬼戟 119 落月弓 120 落日弓 121 御飞刀 122 分身斩 123 神剑 124 神剑闪 125 神剑闪华 126 黄龙天翔 127 大地狂啸 128 泰山压顶 133 浮雷 134 浮雷阵 135 浮雷光阵 136 妖盾 137 鬼面盾 138 罗刹之盾 139 水月斩 140 月刃烈斩 141 月轮烈光斩 255 麒麟降世 142 青龙飞升 143 玄武怒流 144 白虎傲啸 145 朱雀焚天 146 八卦斩 147 八卦突斩 148 八卦阵斩 149 符兵 150 符兵引 151 符兵连引 155 铁轮斩 156 铁轮血斩 157 铁轮血斩阵 158 土遁 159 土遁杀 160 土遁隐杀 161 火雷玉 162 火雷鬼玉 163 火雷鬼玉破 164 忍镖 165 隐忍镖 166 隐忍镖阵 227 水龙 228 水龙涛 229 水龙狂涛 230 超水龙狂涛 231 地龙 232 地龙震 233 地龙极震 234 超地龙极震 235 风龙 236 风龙旋 237 风龙天旋 238 超风龙天旋 239 火龙 240 火龙焰 241 火龙怒焰 242 超火龙怒焰 243 噬血 244 噬血刃 245 超血魔刃 246 超噬血魔刃 247 天剑斩 248 天剑开光 249 天剑神威 250 超天剑神威 251 龙牙车 252 龙牙车队 253 龙牙车阵 254 超龙牙车阵 所有组合技编号: 404 箭石坠 405 炎流星 406 箭雨冲 407 赤焰火轮 408 震地诀 409 天火焚 410 裂地刃 411 水火相生 412 破空鸢 413 百兽奔 414 双月斩 415 风火双龙 416 地水双龙 417 隐忍二连击 418 隐忍超暗杀 419 旋灯剑 420 太极火 421 八卦灯 422 幽冥借法 423 机关阵 424 日月并行 425 莲华神剑 426 救命术 427 怒雷轰 428 雷厉风行 429 伏兵夹击 430 七煞鬼刀 431 轰雷冲车 432 剑无量 433 八卦符兵 437 箭石雨 438 烈炎流星 439 箭雨袭 440 赤焰火轮诀 441 震地大法 442 天火降世 443 裂地狂刃 444 破空火凤 445 千兽奔 446 十六夜斩 447 群龙卷风火 448 群龙引地水 449 超忍二连击 450 旋灯绝剑 451 太极圣火 452 八卦灵灯 453 幽冥引归 454 机关冲 455 莲华剑阵 456 续命术 457 伏兵奇袭 458 天助神兵 459 剑无敌 460 八卦符兵阵 463 流星火雨 464 裂地涌泉 465 破空烈凰 466 箭雨天罗 467 赤焰火轮阵 468 震地动天 469 万兽奔 470 裂光千刃 471 超忍灭绝阵 472 奥义忍稻妻 473 幽冥鬼兵 474 憾宇雷光剑 475 莲华斩舞 476 转生术 477 机关杀阵 478 轰天一剑 479 风雷齐啸 480 天崩地裂 481 十面埋伏 482 乾坤八阵图 485 天地无用 486 神鬼共愤 487 鬼哭神号 488 群龙舞十方 489 天翻地覆 490 千里焦土 491 森罗万象剑 492 逆天术 493 四灵诛邪阵 494 九霄风雷动 498 毁天灭地 499 机关灭绝冲 500 红莲地狱 501 龙皇霸绝 502 血刃断空斩 503 千里不留行 504 天地一刀断 505 不死神术 506 究极忍奥义 507 兽皇破邪阵

6000左右买什么拍照手机好?

推荐最近发布的2款旗舰机型,小米10 Pro和OPPO FInd X2 Pro,下面进行两款机型评测对比,首先来一张DXOMARK排名!

小米10 Pro

第一部分:外观与功能

这次小米10在包装上摒弃了去年活泼跳脱的闪闪风格,采用了沉稳的黑色。表面的文字印刷却还是和小米9的包装盒一样,采用了烫银和彩印。包装盒正面的左上角有一个Hi-Res AUDIO的小金标。包装盒内部还是以白色为主,除了手机本体之外,配件还包含了数据线、65W的快充头、取卡针、保护套以及说明书三包凭证等。

在外观设计上,小米10 Pro给人的第一印象就是精致,相比之前的小米手机,小米10 Pro在细节方面的打磨更加用心,比如更窄的额头和下巴,视觉上更显轻薄的金属中框。很大程度上,这种精致感是来自双曲面屏的加入。双曲面屏不仅在视觉上让手机看起来更加轻薄,也利用这种边缘的向内弯曲,最大程度分散手机在用户手掌中的重量,提升握持手感,并且在宝贵的机身空间内塞入更多的元件。

那提到重量,就不得说一下小米10 Pro的握持手感,小米10 Pro的重量为208g,相较于小米9而言,小米10 Pro握持起来有明显的“厚重感”,但没有小米CC 9 Pro来的那么夸张。考虑到小米10 Pro的内部塞进了骁龙865以及外挂的5G基带,又包含了4500mAh的大电池以及液冷VC等很占空间的元器件,小米10 Pro的整体重量和厚度也在意料之中,

小米10 Pro拥有星空蓝和珍珠白两种配色,均采用了AG磨砂玻璃,这种磨砂玻璃的机身在触感上更加光滑和细腻,阻尼感更小,并且由于在玻璃表面增大了雾度,可以有效的降低在机身上沾染指纹污渍。此次拿到的是星空蓝版本的小米10 Pro。这个星空蓝颜色比较浅,和很多蓝色的手机比起来都要“淡雅”许多,没有星空的那种黑中透蓝的纯粹,像夏天的傍晚,湛蓝海洋深处与天空交界处的那层薄雾,倒是光源照射在机身表面的光斑十分明显,比较适合男生使用。

小米10 Pro背面的摄像头布局设计和小米CC9 Pro可以说是如出一辙,摄像头模组突出机身。

小米10 Pro背面底部中央的位置是小米的Logo以及一个5G标识。在机身按键的布局上小米10 Pro这次也是去粗取精,左边没有任何按键,右侧也只保留了音量和电源键。而屏幕下方还隐藏了一枚光学指纹按键,并且采用了超薄设计,Z轴厚度仅为主流光学指纹的1/10,给内部的电池堆叠留下了足够的空间,在解锁效率和容错率上也没有任何问题。

小米10 Pro这次的屏幕是一块6.67英寸的三星定制双曲面AMOLED屏,双曲面的设计让两侧的边框看起来非常细,上下的边框也得到了进一步收窄,整体显得更加精致。前置镜头的挖孔比主流的位置要更加靠右,在非第一屏的桌面和应用主页,会有一个时间紧贴着挖孔显示,以确保状态栏更加平衡。比较遗憾的是这块屏幕并未用上2K,而是保持了2340X1080P的分辨率。不过在其它方面,它的素质还是非常硬核的。

比如这块屏幕拥有90Hz的刷新率和180Hz的采样率,在日常的触摸操作和系统动画上,都非常的顺滑。屏幕本身采用最新的E3发光材料,可实现1120尼特的峰值亮度,强光激发亮度也能达到800尼特左右,配合前后双感光单元,还会在强光下对显示的内容进行智能的局部对比度增强,让屏幕更加清晰。

在屏幕的色彩上,小米10 Pro拥有DCI-P3色域显示,5000000:1的对比度,HDR10+,以及专业的出厂屏幕校色。屏幕的平均Delta E仅为1.1左右,以满足对屏幕色准要求高的人群。比较有特色的一点是,小米的高级色彩模式,允许用户自定义调节RGB色彩空间,HVS色彩空间,以及对比度、Gamma值等选项,这在主流的友商产品里可是不多见的。总的来说,这块屏幕的观感比前辈要好不少,尤其是在色彩风格切换时也没有明显的色温变化,比较难得。当然,原色模式还是和苹果的原彩显示一样偏向暖黄色。

小米10 Pro的显示调节中,也提供了不少丰富实用的选项。比如屏幕刷新率可以在60Hz和90Hz之间来回切换,用户可以选择是否开启DC调光,也可以利用深色模式让屏幕更加省电,夜晚浏览手机更加护眼,甚至允许用户单独设置哪些应用全屏显示,而哪些应用开启刘海。像这种自适应状态栏做得非常出色的应用,自然就无需显示刘海。

其实,除了手感和屏幕观感之外,小米10 Pro这次给我印象最深的两个体验提升就是对称式设计的超线性双扬声器,以及横向线性马达。音质上的表现相比之前的小米手机要好不少,振动的手感也调得恰到好处,让人享受每一次振动反馈所带来的微妙触感。而且不同的交互行为所提供的振感和振幅也有所区别,比如在APP中长按文字使用大爆炸,就属于比较明显的振动,而如果在文章内容的底部点击收藏按钮,又属于很轻微的振动。

第二部分:配置&性能

堆料是小米10 Pro这次最大的特点。高通骁龙865处理器,全系LPDDR5内存,NSA+SA双模5G,最低8+128GB存储组合,UFS3.0闪存规格,支持802.11ax Wi-Fi 6技术,配备4500mAh电池和50W闪充、30W无线闪充,拥有多功能NFC、横向线性马达,P2i等级的防水,红外遥控等功能。

小米10 Pro配备了前所未有的散热规格,内置6层石墨结构覆盖整个背板,双层主板结构的中间也添加了石墨烯散热层,还有3000m㎡的VC均热板,配合大量的铜箔和导热凝胶,确保机身内部各个地方的热量都能够均匀发散。总之,硬件和性能绝对是小米10 Pro这次重点提升的地方。

骁龙865处理器作为高通的新一代旗舰SOC,在CPU、GPU和AI方面的性能都有显著的提升。首先它采用的是台积电7nm制程工艺,拥有1颗基于A77定制的Kryo 585 Prime超大核,主频达到了2.84Ghz,3颗A77架构的Kryo 585 Gold大核,主频2.42Ghz,还有4颗A55架构的Kryo 585 Sliver小核。这样的1+3+4组合,相比上一代骁龙855处理器,CPU性能提升了25%,功耗也降低了25%。

GPU方面,全新的Adreno 650图形处理器相较上一代Adreno 650也有25%的性能提升,功耗则降低了35%。AI算力方面,骁龙865采用的是第五代AI Engine计算引擎,运算能力是骁龙855的4倍,总体的AI性能是855机型的2倍以上。而在实际的功能上,更强的AI性能让小米10在视频虚化,图像识别,拍照自动场景优化和语音识别等方面能够提供更出色的体验。

另外,5G网络性能的提升,也是骁龙865的重头戏之一。小米10 Pro内置高通X55调制解调器,支持SA+NSA双模5G组网技术,频段覆盖n1,n3,n41,n78,n79等多个5G频段,理论的峰值下载速度高达2.92Gbps。而Wi-Fi方面,小米10 Pro支持全新的第六代802.11ax,可实现8x8 MU-MIMO多端出入技术,让上传和下载速度飙升,并在多设备传输时减少网络拥堵。那水水顺便也测了一下它的5G表现。由于疫情的影响无法外出,而且我住的地方5G覆盖并不是很理想,加上水水的5G套餐只支持500Mbps的理论上限,最终测得小米10 Pro的成绩分别为625Mbps的下载速度和41.7Mbps的上传速度,符合5G手机应有的水平。

而在跑分方面,小米10 Pro的安兔兔成绩为526172分,GeekBench单核得分3676分,多核得分11448分,AndroBench的读取写入速度也完全是UFS3.0的标准。所以在理论性能上,小米10 Pro绝对是第一梯度的。

小米10 Pro的实际游戏表现上,和平精英可开启超高画质和超高帧数,游戏中的最高帧数为51帧,平均帧数在42帧左右,30分钟游戏耗电8%;崩坏3在开启最高画质和特效的情况下,银河舰队鬼火摩托大招也能稳定在60帧,平均帧数在58帧左右,30分钟游戏耗电9%。两款游戏在运行30分钟后,机身表面的温度基本都在35-37度之间,完全不用担心玩游戏会造成灼热的感觉。

小米10 Pro系列这次也对游戏助手这块儿的体验进行了升级,硬件上的Game Turbo技术配合游戏加速,确保用户在运行游戏时能够以最佳的性能和网络环境玩耍。而软件方面,游戏空间的UI和功能也进一步完善,用户可以在桌面生成游戏加速的快捷图标,随时进入游戏空间管理已经下载的各种游戏,也可以在游戏内通过滑动屏幕左上角的提示Bar,呼出快捷游戏工具栏,实时进行各种设置修改和便利性小功能。

第三部分:拍照与影像

影像性能方面,小米10 Pro这次采用了1亿像素主摄的四摄组合。主镜头采用1/1.33英寸超大感光元件和f1.69超大光圈,而且是8P镜组,支持OIS光学防抖。这样的参数在主流的智能手机上确实不多见。其它三枚镜头则分别是支持10倍混合光学变焦的超长焦镜头,1200万像素50mm焦段人像镜头以及2000万像素超广角镜头。其中超长焦镜头也支持OIS光学防抖,人像镜头拥有全像素双核对焦技术,而超广角镜头可实现117度的超大取景视野。

而相机内的软件,这次则重点支持了三大特性,一是超级夜景2.0,在拍摄暗光画面时小米10 Pro会基于RAW算法获取更多暗部细节;二是AI场景识别,全新的内容感知深度神经网络会实时分析画面亮度、色彩,甚至是构图,然后通过全局像素级画质增强,让照片更有“质感”;三是小米10 Pro支持HEIF的拍照格式,可以在确保画质的前提下,节省50%的照片体积,存储更多的照片。

视频方面,小米10系列新增了Vlog视频模式,内置了丰富的模版、自动运镜动画,转场动画,流行配乐以及语音实时转文字功能,能够帮助用户轻松制作Vlog短片。而实时视频虚化功能,则可以让人物主体更加突出,用户可以手动调节虚化等级,达到最满意的效果。前置相机则是2000万像素,支持广角全景模式,可通过挪动手机位置并拍摄三张图片,合成一张广角的大全景照片。

那由于最近的疫情的缘故,以及青岛糟糕的大雾天气,白天的室外样张基本不可用。所以在这里只能给大家分析一下室外夜景部分的表现,还请各位能够多多理解一下。

首先,在光线充足的环境下,小米10 Pro在色彩上的表现十分出色,还原真实且不浓艳。此时的天空还是有一些薄雾,但画面的天空部分纯净度也不错。炫光控制合理,而得益于高像素的优势,不论是近处的枯树枝杈还是远处楼宇的门窗细节,都清晰可辨。

马路对面的街角,小米10 Pro非常准确的还原出当时的情景,天空部分的薄雾被路灯的暖光照得发黄,刚下过小雨的地面看起来湿湿的,对于高亮的广告灯牌,小米10 Pro表现出较强的测光和曝光控制,文字清晰不过曝,也没有溢出的光斑。而在色彩上,AI场景识别则适当增加了一些对比度,让画面显得不那么灰暗。

又比如这张图片,不放大的情况下,小米10 Pro的色彩还原,天空纯净度,噪点控制等表现都可圈可点,文字的边缘和细节也锐利清晰。

最后我们来看看弱光拍摄下的表现。由于手持状态下,夜景模式会有2-3秒的曝光时间,但画面没有出现因手抖造成的模糊和画质劣化。那当相机也会通过多重曝光,提升画面整体的亮度,从而展示出更多的暗部细节。从灯笼的颜色就能看出,照片中的画面比肉眼看到的要更亮一些。不过室内的一些光源会出现偏色的情况。

那即使不用夜景模式,而是直接拍摄,小米10 Pro也会对画面进行一定的提亮,整体的观感甚至和夜景模式区别不大。但从左侧单元门牌号的文字上可以看出,普通模式因为曝光时间不足,加上手持拍摄的缘故,文字会稍显模糊。

第四部分:续航&充电

最后来看看它的充电和续航。小米10 Pro搭载了4500mAh,针对日常使用的场景进行了系统的续航测试。测试环境为:系统亮度50%,音量50%,Wi-Fi、蓝牙开启,测试内容及结果如下:

通话30分钟,耗电5%;

Wi-Fi环境下刷淘宝30分钟,耗电8%;

Wi-Fi环境下刷微信30分钟,耗电6%;

Wi-Fi环境下刷App 30分钟,耗电5%;

戴耳机在线听音乐30分钟(息屏),耗电5%;

在线播放《哔哩哔哩》1080P视频60分钟,耗电10%;

玩《和平精英》30分钟,耗电8%;

拍照30分钟,耗电7%。

待机8小时,耗电1%

剩余电量45%

而充电方面,由于这次小米10 Pro将快充规格提升到了50W,并采用单电芯双电荷泵的充电方案,且惯例配备了输出功率更大的快充头,最高支持66W的输出,在充电测试中,15分钟充50%,30分钟充入83%,45分钟完全充满,这个成绩对于4500mAh的电池来说相当给力了。另外,小米10 Pro还配备了30W的无线快充,80分钟左右也能将手机充满,我猜发布会上应该会出一款对应的快充配件。

总结

小米10 Pro作为小米数字系列10周年的重磅新品,无论是在堆料还是在性能上都无可挑剔,手机本身的系统体验和相机素质也都属于水桶型的风格。当然,小米10系列在设计上还是有些求稳,虽然紧随时下流行的挖孔屏、曲面玻璃和AG磨砂玻璃等工艺和设计,但走的还是稳健风格。水水觉得唯一的遗憾是没有用上2K屏,毕竟都以Pro相称了,电池容量也不小,为何不更极致一些呢?

OPPO FInd X2 Pro

第一部分:外观和设计

相较于第一代Find X激进的设计语言,OPPO Find X2似乎保守了许多,不少用户看到X2的第一眼,似乎多少有点“失望”,不过这种“失望”是基于Find X太过于惊艳的前提之下。即便是OPPO Find X2没有第一代那么惊艳了,但是你将OPPO Find X2和目前其他的骁龙865旗舰机放在一起对比,你会感受到Find X2仍是最高颜值的那一台。

毕竟OPPO在手机的美学造诣上绝对是排第一梯队的,同样的设计语言,同样的元素排布,用在Find X2 Pro上就格外的有气质,举一个不怎么恰当的例子,就好像是同样的一件衣服,穿在模特身上就特别的好看,而Find X2 Pro,就是那个模特。

Find X2没有像Find X那样,在外观设计方面有着巨大的变化,更多的,Find X2是基于现有的一个设计进行的细致打磨,并且打磨出了一个恰到好处的美感。

在Find X2 Pro的机身设计上,你会发现很多熟悉的设计元素,比如机身顶部和底部内凹的月牙造型,比如熟悉的三点式扬声器开孔、绿色线条的电源键等等。这些都是OPPO手机传承下来、经过了千万消费者熟悉并认可的经典设计元素。

拿到的Find X2 Pro是橙色的素皮版本,背面采用了皮革材质,皮质的运用恰到好处,首先是在观感上,相较于玻璃,皮质有着更“高贵”的属性;从实用性角度来看,皮质机身更防滑、不沾指纹和汗渍,还避免了掉在地上后盖摔裂的风险。

手感方面,Find X2 Pro素皮版本重量为200g,这个数据中规中矩,但得益于曲面屏的运用,OPPO仍营造出了相当不错的握持感,机身略微修长,电源键刚好在拇指的位置,机身前玻璃面板、皮质后壳与中框之间的衔接自然舒适,拿在手中浑然一体,没有丝毫因材质不同而产生的割裂感。

第二部分:屏幕和120Hz高刷新率体验

每一代Find手机都会在屏幕上大做文章,如果将Find X的曲面全景屏理解为OPPO极致探索全面屏形态的产物的话,那么Find X2 Pro则是OPPO对顶级屏幕体验更深一层的创造和调教。

按照官方的说法,Find X2系列搭载了OPPO 迄今最清晰、最明亮的专业级手机屏幕,这种说法并不夸张。Find X2 Pro搭载了6.7 英寸 QHD+(3168*1440) 曲面 AMOLED 屏幕,拥有513 ppi、5000000:1 对比度,支持 100% P3 广色域覆盖,采用E3 发光材料,局部峰值亮度1200nit。值得一提的是,这块屏幕还是行业首款10bit 色深的屏幕,支持10.7 亿种色彩显示,在色彩显示上更丰富和细腻。

在设置中,OPPO Find X2 Pro提供了生动、柔和、影院三种色彩模式,通过红蜘蛛5测试了Find X2 Pro在生动、影院模式下的显示效果。

在测试中,Find X2 Pro搭载的这块屏幕获得了非常不错的测试数据,其中生动模式下,OPPO Find X2 Pro拥有100%的sRGB、90%的AdobeRGB,色彩精准度为1.91(最小值0.23,最大值3.46)。

生动模式:

在影院模式下,OPPO Find X2 Pro拥有100%的sRGB、89%的AdobeRGB,色彩精准度仅为0.87,DeltaE小于1,表现非常优秀,这也是测过色彩精准度表现最好的智能手机。

影院模式:

Find X2 Pro的屏幕的另一个亮点,即支持120Hz 刷新率和240Hz 屏幕采样率,无论是滑动信息流还是玩游戏,你都能感受到一股非常顺滑的流畅体验,屏幕就像是打了黄油一样,高分辨率+高刷新率,相信我,只要你用了,绝对回不去了。

和线性马达一样,高刷新率也属于“用了就再也回不去”的配置,你很难通过文字去精准的感受120Hz 超高刷新率屏幕的魅力,但只要当你用过120Hz 刷新率屏幕,当再回到60Hz时,你或多或少会产生“卡顿”的错觉。

下图中,浏览IT之家新闻的时候,上下滑动屏幕,帧率基本保持在110-120左右。

不过高帧率屏幕也会增加不少功耗,相应的,OPPO在Find X2 Pro系统中加入了屏幕刷新率智能切换功能,低电量的时候,屏幕刷新率会自动下降至60Hz。

Find X2 Pro还搭载了独家的超感画质引擎,简单的理解,即通过MEMC 视频动态插帧,将 30fps 以下视频大幅提升至 60fps 甚 至 120fps,以最大化的提高Find X2 Pro屏幕120Hz 刷新率的应用场景。

目前该超感画质引擎支持本地视频和在线视频,在线视频平台包括 腾讯体育(60/120fps)、YouTube (60/120fps)、爱奇艺、优酷、腾讯视频等等。

目前电影的帧率大多都保持在24帧,而借助于该技术,你能在手机上体验到60帧电影的效果。

通过爱奇艺《叶问4》简单感受了一下超感画质引擎,在电影《叶问4》中,开启超感画质引擎之后,画面对比度明显更高了一些,色彩更生动。部分场景下,画面的转动、切换更流畅,观感特别舒适。不过需要注意一点,或许是前期算法的不成熟,这种60帧的感受并不是持续的,比如电影中出现的一些打斗场景、或者是遇到了略微复杂的背景画面(多人、画面色彩变化较大等),你就能看到感受到些许算法的痕迹,比如镜头的不连贯,画面又回到了24帧,当然,这种感知是很细微的。

第三部分:跑分性能和游戏体验

OPPO Find X2 Pro搭载了骁龙865移动平台,拥有12GB(LPDDR5)+256GB/512GB的存储,属于当前安卓阵营顶级配置之列,IT之家拿到的是12+256GB版本。

跑分之前,先简单介绍一下骁龙865:

骁龙865采用的是台积电7nm制程工艺,拥有1颗基于A77定制的Kryo 585 超大核,主频达到了2.84Ghz,3颗A77架构的Kryo 585 Gold大核,主频2.42Ghz,还有4颗A55架构的Kryo 585 Sliver小核,1.8Ghz。相比上一代骁龙855处理器,CPU性能提升了25%,功耗也降低了25%。

GPU方面,全新的Adreno 650图形处理器相较上一代Adreno 650也有25%的性能提升,功耗则降低了35%。

在跑分测试中,我们通过GeekBench4跑分获得,OPPO Find X2 Pro单核心达到了4268分,多核心达到了13252分;

在3DMark跑分中,OpenGL ES3.1显卡分数为8126,总分为7162;

在安兔兔(V8.2.5)测试中,OPPO Find X2 Pro达到了593373分,超越99%的用户。作为对比,搭载骁龙855的手机安兔兔(V8.0.5)跑分为48万+。

在存储读取测试中,OPPO Find X2 Pro的顺序读取速度达到1712MB/s,顺序写入速度达到753MB/s,随机读取速度达206MB/s,随机写入速度达200MB/s,实测成绩属于安卓阵营第一梯队,OPPO Find X2 Pro在面对下载、拷贝、安装、切换大型应用、文件内传输等操作时反应更快,处理效率更高。

单从跑分成绩上来看,OPPO Find X2 Pro的性能显然是无需担心的。

值得一提的是,当打开安兔兔的时候,系统会提醒你开启竞速模式,在该模式下手机会开启大量性能资源,软件关闭后系统恢复之前状态。

测完了跑分,我们再来看一下OPPO Find X2 Pro的游戏表现。我们共测试了《和平精英》《QQ飞车》《狂野飙车9》三款游戏。

需要注意的是,测试中,三款游戏均开启了最高画质和最高帧数,并且为了保证实际游戏的帧率有效,我们只测试了游戏中的帧率,诸如游戏进入界面、游戏结算画面均不在记录范围内。

和平精英:

和平精英游戏中,OPPO Find X2 Pro最高支持60帧,画质最高支持为HDR高清,在我们30分钟的游戏测试中,Find X2 Pro的平均帧为59.7FPS,最高帧为61FPS,最低帧为44FPS,全程基本稳定在61FPS-58FPS左右,这里需要额外说明的是,造成44FPS最低帧的主要原因是笔者当时进行了截图操作。

下面的帧率图显示,将近30分钟的游戏中,手机基本处于满帧运行状态。

狂野飙车9:

狂野飙车9游戏中,我们同样开启了最高画质,帧率最高支持为60FPS。

在45秒的游戏中(一局),OPPO Find X2 Pro的平均帧率为58.8FPS,游戏全程稳定在50FPS之上。相较于《和平精英》,《狂野飙车9》最高画质更吃配置一些,不过就体验来看,对于OPPO Find X2 Pro这样的骁龙865旗舰手机来说,通常主流的大型游戏是均能够轻松应付的。

狂野飙车9▲

我们还测试了《QQ飞车》手游,尽管《QQ飞车》手游对手机的配置要求并不严苛,但《QQ飞车》手游也是目前为数不多的支持120帧超高帧率模式的手游,在OPPO Find X2 Pro上,《QQ飞车》手游可以发挥出最大的优势。

在我们的测试中,一局游戏(2分14秒),OPPO Find X2 Pro基本稳定在120FPS上下,在游戏开始和结束时候,画面略有掉帧,但这种“掉帧”都是从120帧掉到110帧左右,肉眼是根本无法察觉这些细微的变化的。

总的来说,OPPO Find X2 Pro的性能表现能够经得住考验,毕竟代表着目前安卓阵营最高标准。

第四部分:5G和5G下载实测

在硬件方面,Find X2 Pro支持SA/NSA双模5G、支持8模37频段、支持5G+4G双接收双卡双待、全频段采用4*4MIMO技术和HPUE技术、同时n41/78/79频段采用4天线SRS轮发技术,有效地提升5G下行4*4 MIMO吞吐量,网速更快。此外,Find X2 Pro还采用双天线双频WiFi,支持Wi-Fi 6。

在底层优化方面,Find X2 Pro拥有smart 5G技术,可实现可实现智能切换4G/5G网络的功耗优化、DSS动态频谱技术、双5G技术(5G+5G WIFI)、智能动态切换SA和NSA频谱4大功能。

经过将近一年时间的建设,IT之家所在的青岛动漫游戏产业园的5G网络已经开始大面积普及,笔者在公司走廊的尽头就能搜到中国移动的5G信号。

在我们的测试中,Find X2 Pro(中国移动5G满速套餐)获得了966Mbps的下载速度,上传速度最高可达48+Mbps,一次测速竟然能耗掉1G多的流量。

在同一位置,我们还测试了4G网络速度,4G网络下,Find X2 Pro的下载速度仅为39Mbps左右,上传速度为2.14Mbps。作为对比,同一位置下我们测试的5G网络下载速度是它的24倍。

当然,除了测速之外,5G网络已经有了实战场景。我们在5G网络下测试了Find X2 Pro应用商店App的下载速度,几秒钟的时间,Find X2 Pro就能飙升到将近100MB/s的下载速度!

一款将近2GB大小的手游只需十几秒的时间就能完全的下载完毕!笔者制作了一组GIF动图演示,GIF未经过任何加速处理,大家直观感受一下:

第五部分:相机和拍照/视频防抖

上一代Find X手机因为机身结构的原因,相机方面的表现多少有点遗憾,不过在Find X2 Pro上,OPPO开始全力冲击影像力,Find X2 Pro采用48MP主摄(IMX689)+48MP超广角(IMX586)+13MP长焦三摄组合,这也是OPPO迄今性能最强大、功能最全面的超感全焦段影像系统。

此外,Find X2 Pro是行业首款支持12bit 超清图像采集的手机,最高可直出12bit原始图片。

Find X2 Pro并没有堆砌摄像头数量,但仅有的三枚摄像头都是超级实力派:

其中,Find X2 Pro的48MP主摄传感器(IMX689)尺寸达1/1.43英寸,单像素尺寸1.12μm ,两者均是所有48MP手机摄像头中最大的,相较于上一代产品,IMX 689感光面积增加96%,感光灵敏度提升130%。

Find X2 Pro的广角主摄硬件级双原生 ISO 技术,可针对暗光场景和高亮环境智能切换感光度。

Find X2 Pro的还采用了第二代10倍混合光学变焦技术,支持10倍混合光学变焦,最高60倍数码变焦,全新升级 OIS 驱动芯片,变焦画面更清晰稳定,变焦操作更顺畅。

Find X2 Pro相机最大的亮点是首发了全像素全向对焦技术(All Pixel Omni-directional PDAF),对焦性能有大幅度提升。

先来简单科普一下全像素全向对焦技术(部分资料来自OPPO官方):

该技术改进图像传感器微透镜结构和布局,使用2*2 Quad bayer阵列,4个像素共用1个片上透镜,显著提升感光能力和对焦性,暗光环境下对焦性能提升尤为明显。

相比于其他对焦技术,有两个明显优势:

100%像素对焦;

不受被摄物体形状和纹理限制,轻松对焦。

日常我们用手机拍照的时候,遇到一些黑暗的环境,往往镜头会很难快速、精准对焦,这时候如果抓拍照片的话,样张往往会模糊成一片,成片率很低。而Find X2 Pro采用的全像素全向对焦技术,可以从根本上解决这个问题,所有像素都可以做相位差检测,暗光环境下,即使一些较小的物体也能实现高精准的对焦,这大大提升了手机照片的成片率。

此外,该技术还具备“横向”和“斜向”纹理对焦能力,不受被摄物体形状和纹理限制。

来看一下Find X2 Pro的样张(图片均被压缩):

整体来看,Find X2 Pro的样张表现依旧是冷艳范,更多的是还原真实为主。主摄IMX689有着非常不错的表现,无论是色彩还是曝光控制得很好,尽管是阴天,但画面亮度依旧充足。特别是物体特写的虚化样张,背景虚化自然而真实,有种奶油化开般的感觉。

在一些明暗差异较大的环境下,Find X2 Pro会自动开启HDR,方便对比,笔者拍摄了HDR开关两张样张。

通过对比不难发现,HDR功能关闭之后,因为光线对比强烈,车库外的树枝和楼房上的玻璃已经过曝。开启HDR之后,车库上方的墙壁也不再是黑成一片,局部放大之后,远处的树叶和玻璃墙也有了更多的细节,不难看出,开启HDR之后的Find X2 Pro有着不错的动态范围表现。

在夜拍上,Find X2 Pro也有着相当不错的表现,首先是拍摄的样张细节远比人眼所见的多得多,在一些极限弱光环境下,Find X2 Pro拍摄的样张亮度足够充足,画面也相对纯净,有种“夜视仪”的感觉。

此外,Find X2 Pro对高光处的眩光控制也表现不错。

不过笔者认为,Find X2 Pro的相机还是有进一步的优化空间,在夜拍环节中,Find X2 Pro偶尔会拍出一两张噪点很多的图片,考虑到相机本身的素质以及工程机的原因,还是很期待OPPO后期的优化。

值得一提的是,Find X2 Pro的后置三摄镜头均支持超清夜景模式。

变焦就不用多说了,这是OPPO的拿手项目,10倍变焦下,样张的细节仍十分丰富。

视频防抖是OPPO去年以来主打的项目,Find X2 Pro还加入了超广角视频的防抖拍摄(超级防抖 Pro),相比普通视频防抖,超级防抖 Pro的取景范围更宽阔,可以记录更多的画面。

此外,Find X2 Pro还支持10 亿色 Live HDR 视频录制功能,可实现高动态范围、更广色域的视频拍摄,这里就不一一体验了。

普通视频、超级防抖、超级防抖 Pro的取景范围对比:

第六部分:充电和续航

Find X2 Pro内置了4260mAh的电池,电池容量不算小,不过因为120Hz屏幕的原因,Find X2 Pro的功耗还是相对大了一些,这也是唯一一个让笔者不太满意的地方。特别是当你习惯了长续航的手机之后,再上手体验Find X2 Pro之后多少会感到耗电有点快。

在笔者的测试中,Find X2 Pro《和平精英》25分钟(最高帧率最高画质,50%亮度、外放50%音量)耗电12%,这个数据表现只能说一般。当然,如果你手动关闭120Hz屏幕,续航会上升不少,但我想,凡是用过120Hz屏幕的,没人愿意再回到60Hz吧!

好在Find X2 Pro的充电速度够快,对少可以弥补耗电快的遗憾,Find X2 Pro搭载了65W SuperVOOC 2.0超级闪充技术,采用串联双电芯设计,在测试中,12分钟就能从0充到50%的电量,速度表现惊人,这也是笔者测试过充电最快的智能手机。

在测试中,32分钟就能从0充电到100%,不过充到100%的时候系统已经进入了涓流充电状态,完全充满大概需要38分钟左右。

具体表现如下:

总的来看,Find X2 Pro的续航表现一般,但好在充电速度极快,利用闲散时间充电,你就能获得一整天的使用电量,当然,这也意味着你要随身携带Find X2 Pro的原装充电器。

因为时间原因,诸如NFC、立体声双扬声器、AI自适应护眼系统、IP68防水防尘等等这些功能亮点就不一一体验了。

总结:

在官方的宣传中,OPPO用了“全方位,感官觉醒”来形容Find X2系列手机,而在笔者的长时间深度体验中,也确实感受到了Find X2 Pro不一样的气质,都是骁龙865旗舰,都是类似的外观设计,但Find X2 Pro确实给用户带来了一种独有的精致、舒适、高品质的用机感受。

回到产品本身,120Hz的2K屏、精致的机身工艺、舒适的ColorOS 7.1系统、出色的相机表现、不俗的性能和充电速度,这些都是OPPO Find X2 Pro的核心竞争力,在体验上也是足够的旗舰,足够的出色。

OPPO Find X2 Pro在机身ID设计上似乎少了一些惊艳,但笔者并不认为遗憾,如果将Find X看做是全面屏爆发时代,OPPO探索未来智能手机形态、工艺、交互的急先锋,那么Find X2更是一台在全面屏普及时代,稳中求胜的感官全面提升的美学旗舰。

Find X2 Pro依旧延续了Find系列良好的口碑和形象,对于OPPO来说,这也是品牌在高端市场再拔高的关键作品,它并没有像前辈Find X那样,用激进的设计去告诉行业智能手机应该怎么做,更多的,Find X2 Pro是从体验本质出发,做一台更趋于完美的5G时代的智能手机。

希望我的回答对您有所帮助,谢谢!🙏

为什么传奇私服两个相同的帐号合区后只有一个?

如果两个区中有两个相同的帐号合区后系统为了辨别区分帐号就在后面加a。

所有区里面注册有帐号,已经重复了一次了,等于1-3里面你有3个帐号,分别是123,123a,123b,然后4-6区你也有3个帐号,分别是123,123a,123b。这样1-3和4-6区合区以后,帐号将成123,123a,123b,123aa,123ab,123ac这样的变通合区后相同的帐号系统为了方便辨认的是会自动加字母a b c d的,如果帐号现在是10位数的就要将最后一位变成之母。但尽量不要使用相 同的帐号注册。关于《传奇私服》的其他问题: 1、沙城奖励是什么?为什么需要会员才能领取奖励? 新区奖励为王者套+10000凌云币。其他区的奖励为2000凌云币。奖励需要是会员才能够领取这是为了防止小号恶意占领沙城. 2、小号跟以前玩的号怎么没了? 游戏中如果30天以上未登入(时间限制不区分人物等级以及转生高低)或101级以下(等级限制不区分登入时间以及转生级别) 以上两个在合区或者更新时系统自动清除。所以不要使用101级以下的小号做仓库。3、合区的方式 每个新区从开始保留数据开始不低于6天以上后与新三级起点区合并(每5个新区为一个三级起点区),待一段适应期后与二级、起点区合并后经过磨合再与一级区合并。

java高并发情况下sychronized有什么问题?

为了更好的理解并发和同步,我们需要先明白两个重要的概念:同步和异步

1、同步和异步的区别和联系

所谓同步,可以理解为在执行完一个函数或方法之后,一直等待系统返回值或消息,这时程序是出于阻塞的,只有接收到

返回的值或消息后才往下执行其它的命令。

异步,执行完函数或方法后,不必阻塞性地等待返回值或消息,只需要向系统委托一个异步过程,那么当系统接收到返回

值或消息时,系统会自动触发委托的异步过程,从而完成一个完整的流程。

同步在一定程度上可以看做是单线程,这个线程请求一个方法后就待这个方法给他回复,否则他不往下执行(死心眼)。

异步在一定程度上可以看做是多线程的(废话,一个线程怎么叫异步),请求一个方法后,就不管了,继续执行其他的方法。

同步就是一件事,一件事情一件事的做。 异步就是,做一件事情,不引响做其他事情。

例如:吃饭和说话,只能一件事一件事的来,因为只有一张嘴。 但吃饭和听音乐是异步的,因为,听音乐并不引响我们吃饭。

对于Java程序员而言,我们会经常听到同步关键字synchronized,假如这个同步的监视对象是类的话,那么如果当一个对象

访问类里面的同步方法的话,那么其它的对象如果想要继续访问类里面的这个同步方法的话,就会进入阻塞,只有等前一个对象

执行完该同步方法后当前对象才能够继续执行该方法。这就是同步。相反,如果方法前没有同步关键字修饰的话,那么不同的对象

可以在同一时间访问同一个方法,这就是异步。

在补充一下(脏数据和不可重复读的相关概念):

脏数据

脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。因为这个数据是还没有提交的数据,那么另外一个事务读到的这个数据是脏数据(Dirty Data),依据脏数据所做的操作可能是不正确的。 不可重复读 不可重复读是指在一个事务内,多次读同一数据。在这个事务还没有结束时,另外一个事务也访问该同一数据。那么,在第一个事务中的两次读数据之间,由于第二个事务的修改,那么第一个事务两次读到的数据可能是不一样的。这样就发生了在一个事务内两次读到的数据是不一样的,因此称为是不可重复读

2、如何处理并发和同步

今天讲的如何处理并发和同同步问题主要是通过锁机制。

我们需要明白,锁机制有两个层面。

一种是代码层次上的,如java中的同步锁,典型的就是同步关键字synchronized,这里我不在做过多的讲解,

感兴趣的可以参考:http://www.cnblogs.com/xiohao/p/4151408.html

另外一种是数据库层次上的,比较典型的就是悲观锁和乐观锁。这里我们重点讲解的就是悲观锁(传统的物理锁)和乐观锁。

悲观锁(Pessimistic Locking):

悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自 外部系统的事务处理)修改持保守态度,因此,

在整个数据处理过程中,将数据处于锁定状态。

悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能 真正保证数据访问的排他性,否则,即使在本系统

中实现了加锁机制,也无法保证外部系 统不会修改数据)。

一个典型的倚赖数据库的悲观锁调用:

select * from account where name=”Erica” for update

这条 sql 语句锁定了 account 表中所有符合检索条件( name=”Erica” )的记录。

本次事务提交之前(事务提交时会释放事务过程中的锁),外界无法修改这些记录。 Hibernate 的悲观锁,也是基于数据库的锁机制实现。 下面的代码实现了对查询记录的加锁:

String hqlStr ="from TUser as user where user.name='Erica'";

Query query = session.createQuery(hqlStr);

query.setLockMode("user",LockMode.UPGRADE); // 加锁

List userList = query.list();// 执行查询,获取数据

query.setLockMode 对查询语句中,特定别名所对应的记录进行加锁(我们为 TUser 类指定了一个别名 “user” ),这里也就是对

返回的所有 user 记录进行加锁。

观察运行期 Hibernate 生成的 SQL 语句: select tuser0_.id as id, tuser0_.name as name, tuser0_.group_id as group_id, tuser0_.user_type as user_type, tuser0_.sex as sex from t_user tuser0_ where (tuser0_.name='Erica' ) for update 这里 Hibernate 通过使用数据库的 for update 子句实现了悲观锁机制。 Hibernate 的加锁模式有: Ø LockMode.NONE : 无锁机制。 Ø LockMode.WRITE : Hibernate 在 Insert 和 Update 记录的时候会自动获取 Ø LockMode.READ : Hibernate 在读取记录的时候会自动获取。 以上这三种锁机制一般由 Hibernate 内部使用,如 Hibernate 为了保证 Update 过程中对象不会被外界修改,会在 save 方法实现中自动为目标对象加上 WRITE 锁。 Ø LockMode.UPGRADE :利用数据库的 for update 子句加锁。 Ø LockMode. UPGRADE_NOWAIT : Oracle 的特定实现,利用 Oracle 的 for update nowait 子句实现加锁。 上面这两种锁机制是我们在应用层较为常用的,加锁一般通过以下方法实现: Criteria.setLockMode Query.setLockMode Session.lock 注意,只有在查询开始之前(也就是 Hiberate 生成 SQL 之前)设定加锁,才会 真正通过数据库的锁机制进行加锁处理,否则,数据已经通过不包含 for update 子句的 Select SQL 加载进来,所谓数据库加锁也就无从谈起。

为了更好的理解select... for update的锁表的过程,本人将要以mysql为例,进行相应的讲解

1、要测试锁定的状况,可以利用MySQL的Command Mode ,开二个视窗来做测试。

表的基本结构如下:

表中内容如下:

开启两个测试窗口,在其中一个窗口执行select * from ta for update0

然后在另外一个窗口执行update操作如下图:

等到一个窗口commit后的图片如下:

到这里,悲观锁机制你应该了解一些了吧~

需要注意的是for update要放到mysql的事务中,即begin和commit中,否者不起作用。

至于是锁住整个表还是锁住选中的行,请参考:

http://www.cnblogs.com/xiohao/p/4385768.html

至于hibernate中的悲观锁使用起来比较简单,这里就不写demo了~感兴趣的自己查一下就ok了~

乐观锁(Optimistic Locking): 相对悲观锁而言,乐观锁机制采取了更加宽松的加锁机制。悲观锁大多数情况下依 靠数据库的锁机制实现,以保证操作最大程度的独占性。但随之

而来的就是数据库 性能的大量开销,特别是对长事务而言,这样的开销往往无法承受。 如一个金融系统,当某个操作员读取用户的数据,并在读出的用户数

据的基础上进 行修改时(如更改用户帐户余额),如果采用悲观锁机制,也就意味着整个操作过 程中(从操作员读出数据、开始修改直至提交修改结果的全

过程,甚至还包括操作 员中途去煮咖啡的时间),数据库记录始终处于加锁状态,可以想见,如果面对几 百上千个并发,这样的情况将导致怎样的后果。 乐

观锁机制在一定程度上解决了这个问题。

乐观锁,大多是基于数据版本 Version )记录机制实现。何谓数据版本?即为数据增加一个版本标识,在基于数据库表的版本解决方案中,一般是通

过为数据库表增加一个 “version” 字段来 实现。 读取出数据时,将此版本号一同读出,之后更新时,对此版本号加一。此时,将提 交数据的版本数据与数据

库表对应记录的当前版本信息进行比对,如果提交的数据 版本号大于数据库表当前版本号,则予以更新,否则认为是过期数据。对于上面修改用户帐户信息

的例子而言,假设数据库中帐户信息表中有一个 version 字段,当前值为 1 ;而当前帐户余额字段( balance )为 $100 。操作员 A 此时将其读出

( version=1 ),并从其帐户余额中扣除 $50( $100-$50 )。 2 在操作员 A 操作的过程中,操作员 B 也读入此用户信息( version=1 ),并 从其帐

户余额中扣除 $20 ( $100-$20 )。 3 操作员 A 完成了修改工作,将数据版本号加一( version=2 ),连同帐户扣 除后余额( balance=$50 ),提交

至数据库更新,此时由于提交数据版本大 于数据库记录当前版本,数据被更新,数据库记录 version 更新为 2 。 4 操作员 B 完成了操作,也将版本号加一

( version=2 )试图向数据库提交数 据( balance=$80 ),但此时比对数据库记录版本时发现,操作员 B 提交的 数据版本号为 2 ,数据库记录当前版

本也为 2 ,不满足 “ 提交版本必须大于记 录当前版本才能执行更新 “ 的乐观锁策略,因此,操作员 B 的提交被驳回。 这样,就避免了操作员 B 用基于

version=1 的旧数据修改的结果覆盖操作 员 A 的操作结果的可能。 从上面的例子可以看出,乐观锁机制避免了长事务中的数据库加锁开销(操作员 A

和操作员 B 操作过程中,都没有对数据库数据加锁),大大提升了大并发量下的系 统整体性能表现。 需要注意的是,乐观锁机制往往基于系统中的数据存储

逻辑,因此也具备一定的局 限性,如在上例中,由于乐观锁机制是在我们的系统中实现,来自外部系统的用户 余额更新操作不受我们系统的控制,因此可能

会造成脏数据被更新到数据库中。在 系统设计阶段,我们应该充分考虑到这些情况出现的可能性,并进行相应调整(如 将乐观锁策略在数据库存储过程中实

现,对外只开放基于此存储过程的数据更新途 径,而不是将数据库表直接对外公开)。 Hibernate 在其数据访问引擎中内置了乐观锁实现。如果不用考虑外

部系统对数 据库的更新操作,利用 Hibernate 提供的透明化乐观锁实现,将大大提升我们的 生产力。

User.hbm.xml

<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="com.xiaohao.test"> <class name="User" table="user" optimistic-lock="version" > <id name="id"> <generator class="native" /> </id> <!--version标签必须跟在id标签后面--> <version column="version" name="version" /> <property name="userName"/> <property name="password"/> </class> </hibernate-mapping>

注意 version 节点必须出现在 ID 节点之后。 这里我们声明了一个 version 属性,用于存放用户的版本信息,保存在 User 表的version中 optimistic-lock 属性有如下可选取值: Ø none无乐观锁 Ø version通过版本机制实现乐观锁 Ø dirty通过检查发生变动过的属性实现乐观锁 Ø all通过检查所有属性实现乐观锁 其中通过 version 实现的乐观锁机制是 Hibernate 官方推荐的乐观锁实现,同时也 是 Hibernate 中,目前唯一在数据对象脱离 Session 发生修改的情况下依然有效的锁机 制。因此,一般情况下,我们都选择 version 方式作为 Hibernate 乐观锁实现机制。

2 . 配置文件hibernate.cfg.xml和UserTest测试类

hibernate.cfg.xml

<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration><session-factory> <!-- 指定数据库方言 如果使用jbpm的话,数据库方言只能是InnoDB--> <property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property> <!-- 根据需要自动创建数据表 --> <property name="hbm2ddl.auto">update</property> <!-- 显示Hibernate持久化操作所生成的SQL --> <property name="show_sql">true</property> <!-- 将SQL脚本进行格式化后再输出 --> <property name="format_sql">false</property> <property name="current_session_context_class">thread</property> <!-- 导入映射配置 --> <property name="connection.url">jdbc:mysql:///user</property> <property name="connection.username">root</property> <property name="connection.password">123456</property> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <mapping resource="com/xiaohao/test/User.hbm.xml" /> </session-factory></hibernate-configuration>

UserTest.java

package com.xiaohao.test; import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration; public class UserTest { public static void main(String[] args) { Configuration conf=new Configuration().configure(); SessionFactory sf=conf.buildSessionFactory(); Session session=sf.getCurrentSession(); Transaction tx=session.beginTransaction();// User user=new User("小浩","英雄");// session.save(user);// session.createSQLQuery("insert into user(userName,password) value('张英雄16','123')")// .executeUpdate(); User user=(User) session.get(User.class, 1); user.setUserName("221");// session.save(user); System.out.println("恭喜您,用户的数据插入成功了哦~~"); tx.commit(); } }

每次对 TUser 进行更新的时候,我们可以发现,数据库中的 version 都在递增。

下面我们将要通过乐观锁来实现一下并发和同步的测试用例:

这里需要使用两个测试类,分别运行在不同的虚拟机上面,以此来模拟多个用户同时操作一张表,同时其中一个测试类需要模拟长事务

UserTest.java

package com.xiaohao.test; import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration; public class UserTest { public static void main(String[] args) { Configuration conf=new Configuration().configure(); SessionFactory sf=conf.buildSessionFactory(); Session session=sf.openSession();// Session session2=sf.openSession(); User user=(User) session.createQuery(" from User user where user=5").uniqueResult();// User user2=(User) session.createQuery(" from User user where user=5").uniqueResult(); System.out.println(user.getVersion());// System.out.println(user2.getVersion()); Transaction tx=session.beginTransaction(); user.setUserName("101"); tx.commit(); System.out.println(user.getVersion());// System.out.println(user2.getVersion());// System.out.println(user.getVersion()==user2.getVersion());// Transaction tx2=session2.beginTransaction();// user2.setUserName("4468");// tx2.commit(); } }

UserTest2.java

package com.xiaohao.test; import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration; public class UserTest2 { public static void main(String[] args) throws InterruptedException { Configuration conf=new Configuration().configure(); SessionFactory sf=conf.buildSessionFactory(); Session session=sf.openSession();// Session session2=sf.openSession(); User user=(User) session.createQuery(" from User user where user=5").uniqueResult(); Thread.sleep(10000);// User user2=(User) session.createQuery(" from User user where user=5").uniqueResult(); System.out.println(user.getVersion());// System.out.println(user2.getVersion()); Transaction tx=session.beginTransaction(); user.setUserName("100"); tx.commit(); System.out.println(user.getVersion());// System.out.println(user2.getVersion());// System.out.println(user.getVersion()==user2.getVersion());// Transaction tx2=session2.beginTransaction();// user2.setUserName("4468");// tx2.commit(); } }

操作流程及简单讲解: 首先启动UserTest2.java测试类,在执行到Thread.sleep(10000);这条语句的时候,当前线程会进入睡眠状态。在10秒钟之内

启动UserTest这个类,在到达10秒的时候,我们将会在UserTest.java中抛出下面的异常:

Exception in thread "main" org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [com.xiaohao.test.User#5] at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1932) at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2576) at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2476) at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2803) at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:113) at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:273) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:265) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:185) at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321) at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:51) at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1216) at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:383) at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:133) at com.xiaohao.test.UserTest2.main(UserTest2.java:21)

UserTest2代码将在 tx.commit() 处抛出 StaleObjectStateException 异 常,并指出版本检查失败,当前事务正在试图提交一个过期数据。通过捕捉这个异常,我 们就可以在乐观锁校验失败时进行相应处理

3、常见并发同步案例分析

案例一:订票系统案例,某航班只有一张机票,假定有1w个人打开你的网站来订票,问你如何解决并发问题(可扩展到任何高并发网站要考虑

的并发读写问题)

问题,1w个人来访问,票没出去前要保证大家都能看到有票,不可能一个人在看到票的时候别人就不能看了。到底谁能抢到,那得看这个人的“运气”(网

络快慢等)

其次考虑的问题,并发,1w个人同时点击购买,到底谁能成交?总共只有一张票。

首先我们容易想到和并发相关的几个方案 :

锁同步同步更多指的是应用程序的层面,多个线程进来,只能一个一个的访问,java中指的是syncrinized关键字。锁也有2个层面,一个是java中谈到的对

象锁,用于线程同步;另外一个层面是数据库的锁;如果是分布式的系统,显然只能利用数据库端的锁来实现。

假定我们采用了同步机制或者数据库物理锁机制,如何保证1w个人还能同时看到有票,显然会牺牲性能,在高并发网站中是不可取的。使用hibernate后我们

提出了另外一个概念:乐观锁、悲观锁(即传统的物理锁);

采用乐观锁即可解决此问题。乐观锁意思是不锁定表的情况下,利用业务的控制来解决并发问题,这样即保证数据的并发可读性又保证保存数据的排他性,保

证性能的同时解决了并发带来的脏数据问题。

hibernate中如何实现乐观锁:

前提:在现有表当中增加一个冗余字段,version版本号, long类型

原理:

1)只有当前版本号》=数据库表版本号,才能提交

2)提交成功后,版本号version ++

实现很简单:在ormapping增加一属性optimistic-lock="version"即可,以下是样例片段

<hibernate-mapping><class name="com.insigma.stock.ABC" optimistic-lock="version" table="T_Stock" schema="STOCK">

案例二、股票交易系统、银行系统,大数据量你是如何考虑的

首先,股票交易系统的行情表,每几秒钟就有一个行情记录产生,一天下来就有(假定行情3秒一个) 股票数量×20×60*6 条记录,一月下来这个表记录数

量多大? oracle中一张表的记录数超过100w后 查询性能就很差了,如何保证系统性能?

再比如,中国移动有上亿的用户量,表如何设计?把所有用于存在于一个表么?

所以,大数量的系统,必须考虑表拆分-(表名字不一样,但是结构完全一样),通用的几种方式:(视情况而定)

1)按业务分,比如 手机号的表,我们可以考虑 130开头的作为一个表,131开头的另外一张表 以此类推

2)利用oracle的表拆分机制做分表

3)如果是交易系统,我们可以考虑按时间轴拆分,当日数据一个表,历史数据弄到其它表。这里历史数据的报表和查询不会影响当日交易。

当然,表拆分后我们的应用得做相应的适配。单纯的or-mapping也许就得改动了。比如部分业务得通过存储过程等

此外,我们还得考虑缓存

这里的缓存,指的不仅仅是hibernate,hibernate本身提供了一级二级缓存。这里的缓存独立于应用,依然是内存的读取,假如我们能减少数据库频繁的访

问,那对系统肯定大大有利的。比如一个电子商务系统的商品搜索,如果某个关键字的商品经常被搜,那就可以考虑这部分商品列表存放到缓存(内存中

去),这样不用每次访问数据库,性能大大增加。

简单的缓存大家可以理解为自己做一个hashmap,把常访问的数据做一个key,value是第一次从数据库搜索出来的值,下次访问就可以从map里读取,而不

读数据库;专业些的目前有独立的缓存框架比如memcached 等,可独立部署成一个缓存服务器。

4、常见的提高高并发下访问的效率的手段

首先要了解高并发的的瓶颈在哪里?

1、可能是服务器网络带宽不够

2.可能web线程连接数不够

3.可能数据库连接查询上不去。

根据不同的情况,解决思路也不同。

像第一种情况可以增加网络带宽,DNS域名解析分发多台服务器。

负载均衡,前置代理服务器nginx、apache等等

数据库查询优化,读写分离,分表等等

最后复制一些在高并发下面需要常常需要处理的内容:

尽量使用缓存,包括用户缓存,信息缓存等,多花点内存来做缓存,可以大量减少与数据库的交互,提高性能。

用jprofiler等工具找出性能瓶颈,减少额外的开销。

优化数据库查询语句,减少直接使用hibernate等工具的直接生成语句(仅耗时较长的查询做优化)。

优化数据库结构,多做索引,提高查询效率。

统计的功能尽量做缓存,或按每天一统计或定时统计相关报表,避免需要时进行统计的功能。

能使用静态页面的地方尽量使用,减少容器的解析(尽量将动态内容生成静态html来显示)。

解决以上问题后,使用服务器集群来解决单台的瓶颈问题。

java高并发,如何解决,什么方式解决

之前我将高并发的解决方法误认为是线程或者是队列可以解决,因为高并发的时候是有很多用户在访问,导致出现系统数据不正确、丢失数据现象,所以想到 的是用队列解决,其实队列解决的方式也可以处理,比如我们在竞拍商品、转发评论微博或者是秒杀商品等,同一时间访问量特别大,队列在此起到特别的作用,将 所有请求放入队列,以毫秒计时单位,有序的进行,从而不会出现数据丢失系统数据不正确的情况。

今天我经过查资料,高并发的解决方法有俩种:

一种是使用缓存、另一种是使用生成静态页面;还有就是从最基础的地方优化我们写代码减少不必要的资源浪费:(

1.不要频繁的new对象,对于在整个应用中只需要存在一个实例的类使用单例模式.对于String的连接操作,使用StringBuffer或者StringBuilder.对于utility类型的类通过静态方法来访问。

2. 避免使用错误的方式,如Exception可以控制方法推出,但是Exception要保留stacktrace消耗性能,除非必要不要使用 instanceof做条件判断,尽量使用比的条件判断方式.使用JAVA中效率高的类,比如ArrayList比Vector性能好。)

首先缓存技术我一直没有使用过,我觉得应该是在用户请求时将数据保存在缓存中,下次请求时会检测缓存中是否有数据存在,防止多次请求服务器,导致服务器性能降低,严重导致服务器崩溃,这只是我自己的理解,详细的资料还是需要在网上收集;

使用生成静态页面我想大家应该不模式,我们见过很多网站当在请求的时候页面的后最已经变了,如“http://developer.51cto.com/art/201207/348766.htm”该页面其实是一个服务器请求地址,在转换成htm后,访问速度将提升,因为静态页面不带有服务器组件;在这里我就多多介绍一下:

一、什么是页面静态化:

简 单的说,我们如果访问一个链接 ,服务器对应的模块会处理这个请求,转到对应的jsp界面,最后生成我们想要看到的数据。这其中的缺点是显而易见的:因为每次请求服务器都会进行处理,如 果有太多的高并发请求,那么就会加重应用服务器的压力,弄不好就把服务器 搞down 掉了。那么如何去避免呢?如果我们把对 test.do 请求后的结果保存成一个 html 文件,然后每次用户都去访问 ,这样应用服务器的压力不就减少了?

那么静态页面从哪里来呢?总不能让我们每个页面都手动处理吧?这里就牵涉到我们要讲解的内容了,静态页面生成方案… 我们需要的是自动的生成静态页面,当用户访问 ,会自动生成 test.html ,然后显示给用户。

二、下面我们在简单介绍一下要想掌握页面静态化方案应该掌握的知识点:

1、 基础- URL Rewrite

什么是 URL Rewrite 呢 ? URL 重写。用一个简单的例子来说明问题:输入网址 ,但是实际上访问的却是 abc.com/test.action,那我们就可以说 URL 被重写了。这项技术应用广泛,有许多开源的工具可以实现这个功能。

2、 基础- Servlet web.xml

如果你还不知道 web.xml 中一个请求和一个 servlet 是如何匹配到一起的,那么请搜索一下 servlet 的文档。这可不是乱说呀,有很多人就认为 /xyz/*.do 这样的匹配方式能有效。

如果你还不知道怎么编写一个 servlet ,那么请搜索一下如何编写 servlet.这可不是说笑呀,在各种集成工具漫天飞舞的今天,很多人都不会去从零编写一个 servlet了。

三、基本的方案介绍

其中,对于 URL Rewriter的部分,可以使用收费或者开源的工具来实现,如果 url不是特别的复杂,可以考虑在 servlet 中实现,那么就是下面这个样子: 总 结:其实我们在开发中都很少考虑这种问题,直接都是先将功能实现,当一个程序员在干到1到2年,就会感觉光实现功能不是最主要的,安全性能、质量等等才是 一个开发人员最该关心的。今天我所说的是高并发。我的解决思路是:1、采用分布式应用设计2、分布式缓存数据库3、代码优化

Java高并发的例子:

😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈

具体情况是这样: 通过java和数据库,自己实现序列自动增长。实现代码大致如下: id_table表结构, 主要字段:

id_name varchar2(16); id_val number(16,0); id_prefix varchar2(4); //操作DB public synchronized String nextStringValue(String id){ SqlSession sqlSess = SqlSessionUtil.getSqlSession(); sqlSess.update("update id_table set id_val = id_val + 1 where id_name="+id); Map map = sqlSess.getOne("select id_name, id_prefix, id_val from id_table where id_name="+ id); BigDecimal val = (BigDecimal) map.get("id_val"); //id_val是具体数字,rePack主要是统一返回固定长度的字符串;如:Y0000001, F0000001, T0000001等 String idValue = rePack(val, map); return idValue; } //公共方法public class IdHelpTool{ public static String getNextStringValue(String idName){ return getXX().nextStringValue(idName); } }

具体使用者,都是通过类似这种方式:IdHelpTool.getNextStringValue("PAY_LOG");来调用。问题: (1) 当出现并发时, 有时会获取重复的ID; (2) 由于服务器做了相关一些设置,有时调用这个方法,好像还会导致超时。 为了解决问题(1), 考虑过在方法getNextStringValue上,也加上synchronized , 同步关键字过多,会不会更导致超时?跪求大侠提供个解决问题的大概思路!!!

😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈😁✈

解决思路一:

1、推荐 https://github.com/adyliu/idcenter2、可以通过第三方redis来实现。

解决思路一:

1、出现重复ID,是因为脏读了,并发的时候不加 synchronized 比如会出现问题2、但是加了 synchronized ,性能急剧下降了,本身 java 就是多线程的,你把它单线程使用,不是明智的选择,同时,如果分布式部署的时候,加了 synchronized 也无法控制并发3、调用这个方法,出现超时的情况,说明你的并发已经超过了数据库所能处理的极限,数据库无限等待导致超时基于上面的分析,建议采用线程池的方案,支付宝的单号就是用的线程池的方案进行的。数据库 update 不是一次加1,而是一次加几百甚至上千,然后取到的这 1000个序号,放在线程池里慢慢分配即可,能应付任意大的并发,同时保证数据库没任何压力。

免责声明:由于无法甄别是否为投稿用户创作以及文章的准确性,本站尊重并保护知识产权,根据《信息网络传播权保护条例》,如我们转载的作品侵犯了您的权利,请您通知我们,请将本侵权页面网址发送邮件到qingge@88.com,深感抱歉,我们会做删除处理。

目录[+]