当前位置:首页 > Java > Javapdf电子书下载
《Java特种兵(上册)》电子书封面

Java特种兵(上册)

  • 发布时间:2020年10月31日 13:46:01
  • 作者:谢宇
  • 大小:176 MB
  • 类别:Java电子书
  • 格式:PDF
  • 版本:完整版
  • 评分:9.9

    Java特种兵(上册) PDF 完整版

      给大家带来的一篇关于Java相关的电子书资源,介绍了关于Java特种兵、Java方面的内容,本书是由电子工业出版社出版,格式为PDF,资源大小176 MB,谢宇编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:9.9分

      Tags:java Java特种兵 

      内容介绍

      《Java特种兵》分上、下册,上册强调个人修为的提升,也是本书主旨所在,希望能帮助各位读者朋友提升“功力”;下册将基于上册的内容融入设计、实现的细节。

      《Java特种兵(上册)》上册共10章,主要内容包括:从简单的角度来验证功底,通过一些简单的例子来说明我们应当如何去掌握Java的基础;关于计算机的工作原理和Java虚拟机的基础知识;Java通信;Java并发;数据库知识;源码基础,说明Java常见的框架基础知识,比如反射、AOP、ORM、Annotation和配置文件的原理;JDBC、Spring的源码讲解,通过几种不同类型的框架源码,希望读者能体会源码之中的思维方式、设计、架构,以及了解到不同源码的区别所在;最后是知识总结。

      目录

      • 第1篇 Java功底篇
      • 第1章 扎马:看看功底如何
      • 1.1 String的例子,见证下我们的功底
      • 1.1.1 关于“==”
      • 1.1.2 关于“equals()”
      • 1.1.3 编译时优化方案
      • 1.1.4 补充一个例子
      • 1.1.5 跟String较上劲了
      • 1.1.6 intern()/equals()
      • 1.1.7 StringBuilder.append()与String“+”的PK
      • 1.2 一些简单算法,你会如何理解
      • 1.2.1 从一堆数据中找max和min
      • 1.2.2 从100万个数字中找最大的10个数字
      • 1.2.3 关于排序,实际场景很重要
      • 1.2.4 数据库是怎么找数据的
      • 1.2.5 Hash算法的形象概念
      • 1.3 简单数字游戏玩一玩
      • 1.3.1 变量A、B交换有几种方式
      • 1.3.2 将无序数据Hash到指定的板块
      • 1.3.3 大量判定“是|否”的操作
      • 1.3.4 简单的数据转换
      • 1.3.5 数字太大,long都存放不下
      • 1.4 功底概述
      • 1.4.1 什么是功底
      • 1.4.2 功底有何用途
      • 1.4.3 如何磨练功底
      • 1.5 功底补充
      • 1.5.1 原生态类型
      • 1.5.2 集合类
      • 1.6 常见的目录与工具包
      • 1.7 面对技术,我们纠结的那些事儿
      • 1.7.1 为什么我这里好用,哪里不好用
      • 1.7.2 你的程序不好用,你会不会用,环境有问题
      • 1.7.3 经验是否能当饭吃
      • 1.8 老A是在逆境中迎难而上者
      • 第2章 Java程序员要知道计算机工作原理
      • 2.1 Java程序员需要知道计算机工作原理吗
      • 2.2 CPU的那些事儿
      • 2.2.1 从CPU联系到Java
      • 2.2.2 多核
      • 2.2.3 Cache line
      • 2.2.4 缓存一致性协议
      • 2.2.5 上下文切换
      • 2.2.6 并发与征用
      • 2.3 内存
      • 2.4 磁盘
      • 2.5 缓存
      • 2.5.1 缓存的相对性
      • 2.5.2 缓存的用途和场景
      • 2.6 关于网络与数据库
      • 2.6.1 Java基本I/O
      • 2.6.2 Java的网络基本原则
      • 2.6.3 Java与数据库的交互
      • 2.7 总结
      • 第3章 JVM,Java程序员的OS
      • 3.1 学习Java虚拟机对我们有什么好处
      • 3.2 跨平台与字节码基本原理
      • 3.2.1 javap命令工具
      • 3.2.2 Java字节码结构
      • 3.2.3 Class字节码的加载
      • 3.2.4 字节码增强
      • 3.3 从虚拟机的板块开始
      • 3.3.1 Hotspot VM板块划分
      • 3.3.2“对象存放位置”小总结
      • 3.3.3 关于永久代
      • 3.4 常见的虚拟机回收算法
      • 3.4.1 串行GC
      • 3.4.2 ParallelGC与ParallelOldGC
      • 3.4.3 CMS GC与未来的G1
      • 3.4.4 简单总结
      • 3.4.5 小小补充
      • 3.5 浅析Java对象的内存结构
      • 3.5.1 原始类型与对象的自动拆装箱
      • 3.5.2 对象内存结构
      • 3.5.3 对象嵌套
      • 3.5.4 常见类型&集合类的内存结构
      • 3.5.5 程序中内存拷贝和垃圾
      • 3.5.6 如何计算对象大小
      • 3.5.7 轻松玩一玩int[2][100]PK int[100][2]
      • 3.6 常见的OOM现象
      • 3.6.1 HeapSize OOM
      • 3.6.2 PermGen OOM
      • 3.6.3 DirectBuffer OOM
      • 3.6.4 StackOverflowError
      • 3.6.5 其他的一些内存溢出现象
      • 3.7 常见的Java工具

      读书笔记

      JavaFX实现石头剪刀布小游戏

      用JavaFX写一个石头剪刀布的小游戏,供大家参考,具体内容如下

      课程上布置的作业,其实java很少用来写这种程序的

      - GUI界面部分
      - 石头剪刀布的逻辑部分

      书上教的是JavaFX,其实还有很多方法,书上说AWT和Swing基本上淘汰了,但事实上…

      代码

      MyJavaFX.java

      package cn.homework;
      
      import javafx.application.Application;
      import javafx.event.ActionEvent;
      import javafx.event.EventHandler;
      import javafx.geometry.Pos;
      import javafx.scene.Scene;
      import javafx.scene.control.Button;
      import javafx.scene.control.Label;
      import javafx.scene.layout.BorderPane;
      import javafx.scene.layout.GridPane;
      import javafx.scene.image.Image;
      import javafx.scene.image.ImageView;
      import javafx.scene.layout.StackPane;
      import javafx.scene.text.*;
      import javafx.scene.text.Font;
      import javafx.stage.Stage;
      
      import java.awt.*;
      
      
      public class MyJavaFX extends Application {
      
       Lablepane lablepane=new Lablepane();
      // String str1;
      //
      // public void setStr1(String str1) {
      //  this.str1 = str1;
      // }
      
       @Override
       public void start(Stage primaryStage) throws Exception {
        GridPane pane = new GridPane();
        pane.setAlignment(Pos.CENTER);
        pane.setHgap(5);
      
        Label label = new Label("开始游戏:");
        label.setFont(Font.font("Times New Roman", FontWeight.BOLD, FontPosture.ITALIC, 30));
        pane.add(label, 0, 0);
        //布
        Image image1 = new Image("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1521291025265&di=a0bc9a448dfcaac150e064577e6dabfd&imgtype=0&src=http%3A%2F%2Fimg1.ali213.net%2Fshouyou%2Fcover%2Fc%2F48302.jpg");
        ImageView imageView1 = new ImageView(image1);
        imageView1.setFitHeight(150);
        imageView1.setFitWidth(150);
        pane.add(imageView1, 0, 1);
        Image1HanderClass image1HanderClass = new Image1HanderClass();
        Button btOK1 = new Button("布");
        pane.add(btOK1, 0, 2);
        btOK1.setOnAction(image1HanderClass);
        //石头
        Image image2 = new Image("https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=1419901674,657140521&fm=27&gp=0.jpg");
        ImageView imageView2 = new ImageView(image2);
        imageView2.setFitHeight(150);
        imageView2.setFitWidth(150);
        pane.add(imageView2, 1, 1);
        Image2HanderClass image2HanderClass = new Image2HanderClass();
        Button btOK2 = new Button("石头");
        pane.add(btOK2, 1, 2);
        btOK2.setOnAction(image2HanderClass);
        //剪刀
        Image image3 = new Image("https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=2460250897,3788214935&fm=27&gp=0.jpg");
        ImageView imageView3 = new ImageView(image3);
        imageView3.setFitHeight(150);
        imageView3.setFitWidth(150);
        pane.add(imageView3, 2, 1);
        Image3HanderClass image3HanderClass = new Image3HanderClass();
        Button btOK3 = new Button("剪刀");
        pane.add(btOK3, 2, 2);
        btOK3.setOnAction(image3HanderClass);
      
      
        BorderPane borderPane=new BorderPane();
        borderPane.setCenter(pane);
        borderPane.setBottom(lablepane);
        BorderPane.setAlignment(pane,Pos.CENTER);
      
      
      //  游戏结束
      //  Label label1 = new Label("111");
      //  label1.setFont(Font.font("Times New Roman", FontWeight.BOLD, FontPosture.ITALIC, 30));
      //  pane.add(label1, 0, 3);
      
        pane.setStyle("-fx-background-color: #0effb8");
      
        Scene scene = new Scene(borderPane, 800, 500);
        primaryStage.setTitle("石头剪刀布");
        primaryStage.setScene(scene);
        primaryStage.show();
       }
      
      
       class Image1HanderClass implements EventHandler<ActionEvent> {
      
        //布2
        @Override
        public void handle(ActionEvent event) {
         Game game = new Game();
         String str = game.playgame(2);
         //setStr1(str);
         lablepane.show(str);
         System.out.println(str);
      
        }
       }
      
       class Image2HanderClass implements EventHandler<ActionEvent> {
      
        //石头0
        @Override
        public void handle(ActionEvent event) {
         Game game = new Game();
         String str = game.playgame(0);
         //setStr1(str);
         lablepane.show(str);
         System.out.println(str);
        }
       }
      
       class Image3HanderClass implements EventHandler<ActionEvent> {
      
        //剪刀1
        @Override
        public void handle(ActionEvent event) {
         Game game = new Game();
         String str = game.playgame(1);
         //setStr1(str);
         lablepane.show(str);
         System.out.println(str);
        }
       }
       class Lablepane extends StackPane{
        private Label label=new Label("结果");
        public Lablepane(){
         getChildren().add(label);
         label.setFont(Font.font("Times New Roman", FontWeight.BOLD, FontPosture.ITALIC, 30));
        }
        public void show(String str){
         label.setText(str);
        }
       }
      
      }
      

      代码

      Game.java

      package cn.homework;
      import java.util.Random;
      import java.util.Scanner;
      public class Game {
       public static void main(String []args){
        String result=playgame(0);
        System.out.println(result);
       }
       public static String playgame(int user){
        //用户输入
        //System.out.println("请输入您要出的:如果出石头请输入0 如果出剪刀请输入1 如果出布请输入2");
        //系统生成
        Random xx = new Random(); //声明随机数
        int number = xx.nextInt(3); //赋值随机数给number
        //比较
        if(user==0 && number==0){
         return "你出的是石头,系统出的是石头,双方平局。";
        }
        else if(user==1 && number==0){
         return "你出的是剪刀,系统出的是石头,你输了。";
        }
        else if(user==2 && number==0){
         return "你出的是布,系统出的是石头,你赢了。";
        }
        else if(user==0 && number==1){
         return "你出的是石头,系统出的是剪刀,你赢了。";
        }
        else if(user==1 && number==1){
         return "你出的是石头,系统出的是石头,双方平局。";
        }
        else if(user==2 && number==1){
         return "你出的是布,系统出的是剪刀,你输了。";
        }
        else if(user==0 && number==2){
         return "你出的是石头,系统出的是布,你输了。";
        }
        else if(user==1 && number==2){
         return "你出的是剪刀,系统出的是布,你赢了。";
        }
        else{
         return "你出的是布,系统出的是布,双方平局。";
        }
       }
      
      }

      以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。

      以上就是本次介绍的Java电子书的全部相关内容,希望我们整理的资源能够帮助到大家,感谢大家对码农之家的支持。

      上一篇:一本书读懂互联网思维

      下一篇:质量全面管控:从项目管理到容灾测试

      查看更多
      Java 相关电子书
      透视JAVA:反编译、修补和逆向工程技术
      透视JAVA:反编译、修补和逆向工程技术 PDF 扫描完整版

      透视Java:反编译、修补和逆向工程技术 作者:(乌克兰)AlexKalinovsky著 出版时间:2005 本书主要专注于通常被称作破译的技巧,介绍了边界的终极技术,包括反编译和混淆类、破译私有变量和方法、替代和修补应用类和破译JAVA的行为等方法。

      立即下载
      代码不朽:编写可维护软件的10大要则(Java版)
      代码不朽:编写可维护软件的10大要则(Java版) PDF 扫描版

      本书提供代码示例,能够让读者一步步了解到如何对代码进行重构,从大量实践项目中提取出了编写可维护软件的10个最佳原则,帮助读者编写出高质量、简洁的代码,开发出松耦合、高可维护

      立即下载
      深度解析Java游戏服务器开发
      深度解析Java游戏服务器开发 PDF 完整扫描版

      以便协助想掌握新手入门服务器开发设计的从业者或式从业者快速把握Java服务器开发设计的技术性,这书从手机游戏的行业现状、Java技术性、手机游戏逻辑性、数据库系统、网络理论、服务器

      立即下载
      Java虚拟机基础教程
      Java虚拟机基础教程 PDF 中文扫描版

      概述JVM及其特性,介绍了Java、Scala、Clojure、Kotlin和Groovy这5种基于JVM的语言,分别探讨它们的特性和用例,适合所有Java开发人员以及对JVM感兴趣的读者

      立即下载
      JavaScript权威指南(第6版)
      JavaScript权威指南(第6版) PDF 超清版 立即下载
      读者心得
      37小时28分钟前回答

      JavaScript实现换肤功能实例代码

      一,js换肤的基本原理 基本原理很简单,就是使用 JS 切换对应的 CSS 样式表文件。例如导航网站 Hao123 的右上方就有网页换肤功能。除了切换 CSS 样式表文件之外,通常的网页换肤还需要通过 Cookie 来记录用户之前更换过的皮肤,这样下次用户访问的时候,就可以自动使用上次用户配置的选项。 那么基本工作流程就出来了:访问网页JS 读取 Cookie 如果没有,使用默认皮肤如果有,使用指定皮肤;用户点击换肤选项JS 控制替换对应的 CSS 样式表将皮肤选项写进 Cookie 保存。 二,事先需要的准备工作 1,不同的皮肤对应不同的css文件,准备好多套css样式文件: 如蓝色对应:skinColour_blue.css 黄色对应:skinColour……

      5小时6分钟前回答

      Java实现爬取往期所有双色球开奖结果功能示例

      本文实例讲述了Java实现爬取往期所有双色球开奖结果功能。分享给大家供大家参考,具体如下: 梦想还是要有的,万一实现了呢?我相信经常买双色球的朋友和我都会有一个疑问,就是往期双色球的开奖结果是什么?我钟意的这一注双色球在往期是否开过一等奖,如果开过的话,基本上可以放弃这一注了,因为历史上应该没有出现过两期双色球开奖完全一致的吧?那么往期的开奖结果是什么呢?我自己用Java写了一个简易的类,爬取所有双色球开奖结果,本来想开发安卓版本的,由于UI等需要时间准备,有缘再开发吧。 import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileWriter;i……

      47小时54分钟前回答

      java可以运维吗

      java和运维是两个不同的岗位,做运维不需要任何java基础,做运维甚至不需要任何的编程基础,如果你想要薪资更高一点,那就需要学习编程了,毕竟会编程再加上运维便可以拿高薪啦。不会一门开发语言的运维,你就不能自己写运维平台复杂的运维工具,一切要借助于找一些开源软件拼拼凑凑,如果是这样,那就请不要抱怨你的工资低,你的工作不受重视了, 1、如果只是纯粹的业务类型的那可以不了解编程知识,但是这种运维一般很少,所以一般大多都是技术类运维,需要了解一些功能的实现过程,你需要看懂一些简单的代码等,所以一般来说运维岗位是需要了解一些编程知识的。 2、运维工程师的……

      码农之家

      富正真 提供上传

      资源
      19
      粉丝
      9
      喜欢
      102
      评论
      2

      Copyright 2018-2021 www.xz577.com 码农之家

      版权投诉 / 书籍推广:520161757@qq.com